#2
东海ECS2023-04-15 09:29
|
程序代码:
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编辑过]