1.3用socketserver創建服務器
阿新 • • 發佈:2017-09-23
nco 返回 break 處理 hand lose rpo line ssa
socket服務器代碼
import socketserver,time myHost = ‘‘ myPort = 50007 def now(): #返回一個時間 return time.ctime(time.time()) class MyClientHandler(socketserver.BaseRequestHandler): def handle(self): #處理每一個連接的用戶print(self.client_address,now()) #打印該用戶地址 time.sleep(5) #模擬一個運行 while True: #self.reqeust指的是用戶 data = self.request.recv(1024) # 從客戶端接受信息 ifnot data: break reply = ‘Ech0=>%s at %s‘%(data,now()) self.request.send(reply.encode()) #發送信息給客戶端 self.request.close() #創建線程,讓服務器一直運行下去 myaddr = (myHost,myPort) server = socketserver.ThreadingTCPServer(myaddr,MyClientHandler) server.serve_forever()
socket客戶端測試代碼
from socket import * serverHost = ‘localhost‘ serverPort = 50007 while True: messages = [input(‘輸入‘).encode()] #輸入信息,並設置編碼, 可設置b‘‘或者str.encode() socketobj = socket(AF_INET, SOCK_STREAM) # 創建TCP對象 socketobj.connect((serverHost, serverPort)) # 連接端口 for line in messages: socketobj.send(line) data = socketobj.recv(1024) # 從服務器接受信息 print(‘Client received:‘, data.decode()) #打印信息,解碼打印,str.decode() socketobj.close()
1.3用socketserver創建服務器