| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:求助,主线程开启副线程的问题
取消只看楼主 加入收藏
zxq0103
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2023-3-10
结帖率:0
收藏
 问题点数:0 回复次数:2 
求助,主线程开启副线程的问题
程序代码:
from socket import *
import os,sys
from multiprocessing import Process

"""
    UDP客户端
    协议:
        L:登陆
        C:聊天
        Q:退出
"""

ADDR = ('127.0.0.1',8888)
s = socket(AF_INET,SOCK_DGRAM)

def main():
    while True:
        name = input('请输入姓名>>')
        msg = 'L ' + name
        # 发送信息
        s.sendto(msg.encode(),ADDR)
        # 接收信息
        data,addr = s.recvfrom(128)
        print('收到信息:',data.decode())

        if data.decode() == 'OK':
            print('你已经入进聊天室',) # 下面如何开启副线程能进入到收消息函数,且不影响主线程下面的发消息
            p1 = Process(target=to_recv,name='收消息',args=(name,)) # 监听收消息
            p1.start()
            print(p1.name,p1.pid)
            to_send(name)
            #to_recv(name)
            return
        else:
            print(data.decode())

def to_recv(name): #收消息
    while True:
        data,addr = s.recvfrom(128)
        tmp = data.decode().split(' `')
        print(tmp[1])

def to_send(name): # 发消息
    while True:
        msg = input(name+"[q退出]>>")
        if msg == 'q':
            msg = 'Q '+name
            s.sendto(msg.encode(),ADDR)
            sys.exit()
        else:
            msg = 'C '+name+' '+ msg
            s.sendto(msg.encode(),ADDR)
        

main()

请问,在上面进入聊天室后,如何能开启副线程去到收信息的函数里,下面发信息是主线程要运行的

[此贴子已经被作者于2023-4-14 23:43编辑过]

搜索更多相关主题的帖子: data 线程 消息 name ADDR 
2023-04-14 23:40
zxq0103
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2023-3-10
收藏
得分:0 
回复 2楼 东海ECS
vscode下运行不了啊
2023-04-15 13:53
zxq0103
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2023-3-10
收藏
得分:0 
回复 5楼 东海ECS
我在VSCODE里始终不能实现进程收发UDP的消息,
进程不能用input,现在我改成线程了,
已经解决问题了.我是在用UDP模拟聊天室,

[此贴子已经被作者于2023-4-16 00:00编辑过]

2023-04-15 23:58
快速回复:求助,主线程开启副线程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049879 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved