day40---作业

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

原文地址:https://www.cnblogs.com/surpass123/p/12769369.html