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. Python從URL中提取域名2. 實現bing搜索工具urlAPI提交3. node.js - windows10下的npm全局路徑的復原或者將npm徹底刪除?4. python執行cmd命令,怎么讓他執行類似Ctrl+C效果將其結束命令?5. python - scrapy url去重6. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)7. mysql在限制條件下篩選某列數據相同的值8. 關于mysql聯合查詢一對多的顯示結果問題9. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。10. python - Django有哪些成功項目?
