SocketServer 簡化編寫網路伺服器的步驟
阿新 • • 發佈:2018-11-19
建立一個socketserver
1.建立一個請求的類,必須是BaseRequestsHandler 的子類。並且要重寫父類裡面的handle()方法
2.必須實列化一個server class ,並且傳遞server ip和你建立的請求處理類給這個server class
3.server.server_forever() 處理多個請求·,永遠執行
import socketserver class MyTcpHandler(socketserver.BaseRequestHandler): """建立 繼承 重寫""" defSocket_serverhandle(self): # 與客戶端互動 while True: try: self.data = self.request.recv(1024).strip() print("{} wrote:".format(self.client_address[0])) print(self.data) # if not self.data: # 客戶端斷開 # print(self.client_address,"斷開了")# break self.request.sendall(self.data.upper()) except ConnectionResetError as e: print("error:",e) break if __name__ == "__main__": HOST,PORT = "localhost",3339 server = socketserver.TCPServer((HOST,PORT),MyTcpHandler) server.serve_forever()
import socket import hashlib client = socket.socket() client.connect(('localhost',3339)) while True: cmd = input(">>:").strip() if len(cmd) == 0: continue client.send(cmd.encode('utf-8')) data = client.recv(1024) print(data.decode()) client.close()Socker_client