from multiprocessing import Process import socket,sys,os class MyProcess(Process): def __init__(self,args): super().__init__() self.args = args[0:2] self.fn = args[2] def run(self): sys.stdin = os.fdopen(self.fn) print("子进程开始.") while 1: try: client_from_msg = self.args[0].recv(1024).decode() print(client_from_msg) if not client_from_msg: break server_input = input(" >>:").strip() se = server_input.encode() self.args[0].send(se) except Exception: break if __name__ == ‘__main__‘: print("主进程开始.") server = socket.socket() ip_port = ("127.0.0.1", 8020) server.bind(ip_port) server.listen(2) fn = sys.stdin.fileno() while 1: conn, client_addr = server.accept() p = MyProcess(args=(conn, client_addr,fn)) p.start()
import socket client = socket.socket() ip_port = ("127.0.0.1", 8020) client.connect(ip_port) while 1: inp = input(">>>:") if not inp: continue client.send(inp.encode("utf-8")) from_server_msg = client.recv(1024).decode() print("来自服务端的消息:", from_server_msg) client.close()
解决multiprocessing.Process子进程中 input( ) 不干活的问题
原文:https://www.cnblogs.com/max404/p/11854414.html