并发网络通信
from socket import *
import os
import signal
HOST = "127.0.0.1"
PORT = 8899
ADDR = (HOST, PORT)
def handle(sock):
while True:
data = sock.recv(1024)
if not data:
break
print(data.decode())
sock.send(b"ok")
sock.close()
pass
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
sockfd = socket(AF_INET, SOCK_STREAM)
sockfd.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sockfd.bind(ADDR)
sockfd.listen(5)
sock = None
while True:
try:
sock, addr = sockfd.accept()
except KeyboardInterrupt:
os._exit()
except Exception:
continue
pid = os.fork()
if pid == 0:
sockfd.close()
handle(sock)
os._exit()
else:
sock.close()
continue