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類型。或者使用bytes比較。
if accept_data == b'byebye': break
處理 accept_date數據的時候,decode即可,如果服務器返回的utf-8編碼的,只需要accep_data.decode(’utf-8’)
相關文章:
1. 在mac下出現了兩個docker環境2. css3 - css怎么實現圖片環繞的效果3. android - 用textview顯示html時如何寫imagegetter獲取網絡圖片4. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?5. css - 定位為absolute的父元素中的子元素 如何設置在父元素的下面?6. JavaScript事件7. javascript - jquery hide()方法無效8. 網頁爬蟲 - 用Python3的requests庫模擬登陸Bilibili總是提示驗證碼錯誤怎么辦?9. 注冊賬戶文字不能左右分離10. html - vue項目中用到了elementUI問題
