python socket 如何接收tcp/ip byte 格式的數據?
問題描述
python socket 如何接收tcp/ip byte 格式的數據?下面的只能接收明文
import socketserver # 導入socketserver模塊class MyServer(socketserver.BaseRequestHandler): # 創建一個類,繼承自socketserver模塊下的BaseRequestHandler類 def handle(self): # 要想實現并發效果必須重寫父類中的handler方法,在此方法中實現服務端的邏輯代碼(不用再寫連接準備,包括bind()、listen()、accept()方法)while 1: conn = self.request addr = self.client_address # 上面兩行代碼,等于 conn,addr = socket.accept(),只不過在socketserver模塊中已經替我們包裝好了,還替我們包裝了包括bind()、listen()、accept()方法 while 1:accept_data = conn.recv(1024)#accept_data = int(’0x4’,16)print(accept_data)if accept_data == 'byebye': breaksend_data = bytes(input('>>>>>'))conn.sendall(send_data) conn.close()if __name__ == ’__main__’: sever = socketserver.ThreadingTCPServer(('192.168.0.110', 10001), MyServer) # 傳入 端口地址 和 我們新建的繼承自socketserver模塊下的BaseRequestHandler類 實例化對象 sever.serve_forever() # 通過調用對象的serve_forever()方法來激活服務端
問題解答
回答1:如果你的python3, conn.recv() 返回數據就是 bytes,decode一下就是str類型?;蛘呤褂胋ytes比較。
if accept_data == b'byebye': break
處理 accept_date數據的時候,decode即可,如果服務器返回的utf-8編碼的,只需要accep_data.decode(’utf-8’)
相關文章:
1. nignx - docker內nginx 80端口被占用2. docker容器呢SSH為什么連不通呢?3. javascript - 連續點擊觸發mouseleave事件4. docker - 各位電腦上有多少個容器???容器一多,自己都搞混了,咋辦呢?5. 關于docker下的nginx壓力測試6. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””7. mac里的docker如何命令行開啟呢?8. docker gitlab 如何git clone?9. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下10. angular.js使用$resource服務把數據存入mongodb的問題。

網公網安備