服务端 """ 基于fork的多进程网络并发 """ # 服务端 from socket import * import os,sys import signal def handle(c): print("客户端:",c.getpeername()) while True: data = c.recv(1024) if not data: break print(data.decode()) c.send(b'OK') # 创建监听套接字 HOST = "0.0.0.0" PORT = 8888 ADDR = (HOST,PORT) # 创建套接字 s = socket() # tcp套接字 s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) s.bind(ADDR) s.listen(3) # 僵尸进程处理 signal.signal(signal.SIGCHLD,signal.SIG_IGN) print("Listen the port 8888....") # 循环等待客户端连接 while True: try: c,addr = s.accept() except KeyboardInterrupt: sys.exit("服务器退出") except Exception as e : print(e) continue # 创建子进程处理客户端请求 pid = os.fork() if pid == 0: s.close() # 子进程不需要s handle(c) # 具体处理客户端请求 os._exit(0) # 父进程只用来处理客户端的连接 else: c.close() # 父进程不需要c