標籤:eve ase proc recv dal pre you anti ssi
# client 端import socketip_port = (‘127.0.0.1‘, 8091)sk = socket.socket()sk.connect(ip_port)print("用戶端啟動: ")while True: inp = input(">>>") sk.sendall(bytes(inp, "utf8")) if inp == ‘exit‘: break server_response = sk.recv(1024) print(str(server_response, "utf8"))sk.close()# server 端import socketserverclass MyServer(socketserver.BaseRequestHandler): def handle(self): print("伺服器啟動...") while True: conn = self.request print(self.client_address) while True: client_data = conn.recv(1024) print(str(client_data, "utf8")) print("waiting...") server_response = input(">>>") conn.sendall(bytes(server_response, "utf8")) conn.close()if __name__ == ‘__main__‘: server = socketserver.ThreadingTCPServer((‘127.0.0.1‘,8091), MyServer) server.serve_forever() # 這裡會執行 handle 方法,所以 handle 方法裡是編寫程式邏輯。
建立一個socketserver 至少分以下幾步
First, you must create a request handler class by subclassing the BaseRequestHandlerclass and overriding its handle() method; this method will process incoming requests.
Second, you must instantiate one of the server classes, passing it the server’s address and the request handler class.
Then call the handle_request() or serve_forever() method of the server object to process one or many requests.
Finally, call server_close() to close the socket.
Python 簡單的多線程聊天