#socketserver 是在socket基礎上進行了封裝,它讓server能夠實時跟多個client進行通訊。 #thread線程:一個程序有一個線程,一個線程是調度cpu的最小單位。程序運行才產生線程,不運行就不產生。 #若是啓用多個線程去接收多個client的請求,就能實現併發的效果。 # server: import socketserver class MyServer(socketserver.BaseRequestHandler): #必須繼承此父類 def handle(self): #必須定義此函數,self.request至關於conn while True: msg = self.request.recv(1024).decode('utf-8') print(msg) if msg == 'q': break info = input('server:') self.request.send(info.encode('utf-8')) if __name__ == '__main__': server = socketserver.ThreadingTCPServer(('127.0.0.1',8888),MyServer) #實例化對象 = 類() server.serve_forever() #client1: import socket sk = socket.socket() sk.connect(('127.0.0.1',8888)) while True: info = input('client1:') if info == 'q': sk.send(info.encode('utf-8')) break sk.send(info.encode('utf-8')) ret = sk.recv(1024).decode('utf-8') print(ret) sk.close() #client2: import socket sk = socket.socket() sk.connect(('127.0.0.1',8888)) while True: info = input('client2:') if info == 'q': sk.send(info.encode('utf-8')) break sk.send(info.encode('utf-8')) ret = sk.recv(1024).decode('utf-8') print(ret) sk.close()