from multiprocessing import Process
def do_request(udp_server):
# 循环接收请求分情况讨论
while True:
request, addr = udp_server.recvfrom(1024) # 接收请求
tmp = request.decode().split(" ", 1) # 解析通信协议
# print(request.decode()) # 测试服务端和客户端是否互通
if tmp[0] == "LOGIN": # tmp->[LOGIN,name]
login(tmp[1], udp_server, addr)
elif tmp[0] == "CHAT": # tmp->[CHAT,name:content]
chat(tmp[1], udp_server)
elif tmp[0] == "EXIT": # tmp->[EXIT,name]
exit_chat(tmp[1], udp_server)
def main():
udp_server = socket(AF_INET, SOCK_DGRAM)
udp_server.bind(ADDR)
p = Process(target=do_request, args=(udp_server,), daemon=True)
p.start()
# 父进程发送管理员消息
while True:
content = input("管理员消息:")
if content == "exit":
break
if __name__ == '__main__':
main()
为什么启动程序后,主进程正在执行,而子进程一直没有执行呢?