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()