import socket
from multiprocessing import Process
IP_ADDRESS = ('0.0.0.0', 9090)
BUF_SIZE = 1024
class MyServer:
def init(self, ip_address, buf_size):
self.ip_address = ip_address
self.buf_size = buf_size
self.server = socket.socket()
self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
def bind(self):
self.server.bind(self.ip_address)
def listen(self):
self.server.listen(5)
def accept(self):
return self.server.accept()
def communicate(self, conn, ip):
while 1:
try:
msg = conn.recv(self.buf_size)
if not msg: break
print(f"[{ip}]发来消息:{msg.decode('utf-8')}")
conn.send(('小鸡炖蘑菇'.center(30, '=')).encode('utf-8'))
except ConnectionResetError as e:
print(f'connect error:{e}')
break
conn.close()
def run(self):
self.bind()
self.listen()
while 1:
conn, addr = self.accept()
print(f'接到[{addr[0]}:{addr[1]}]的电话...')
p = Process(target=self.communicate, args=(conn, addr[0]))
p.start()
if name == 'main':
server = MyServer(IP_ADDRESS, BUF_SIZE)
server.run()