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. docker-machine添加一個已有的docker主機問題2. docker - 如何修改運行中容器的配置3. mac里的docker如何命令行開啟呢?4. 關于docker下的nginx壓力測試5. angular.js - angularjs的自定義過濾器如何給文字加顏色?6. docker安裝后出現Cannot connect to the Docker daemon.7. java - bootstrap table分頁以后,下面的分頁按鈕消失怎么辦并且如何返回總頁數8. java - 安卓實現熄屏功能。9. 在MySQL數據庫中查詢表里的記錄條數的代碼怎么寫?10. 導入項目之后登錄界面驗證碼彈不出來
