2016-01-23 108 views
-1

我正在嘗試進行網絡聊天。 我現在並沒有那麼順利,因爲我無法弄清楚這個問題。 它是說:TypeError: a bytes-like object is required, not 'str「 任何人都可以請給我一些建議來解決這個問題 非常感謝你; - >)任何人都可以解決這個問題嗎?

import socket 

HOST = '127.0.0.1' 
PORT = 50007 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((HOST,PORT)) 
s.send('Hello') 
data = s.recv(1024) 
s.close() 
+0

你需要發佈你的代碼的一部分(至少是引發這個錯誤的代碼),以便人們給你更好的建議或幫助。儘管如此,你應該看到這個http://stackoverflow.com/questions/33054527/python-3-5-typeerror-a-bytes-like-object-is-required-not-str得到一些方向 – Incognito

+0

而且,當面臨除了例外,你應該寫出實際的異常消息(剪切和粘貼)並指出它從哪裏拋出,而不僅僅是你認爲的重要部分。 – skyking

回答

1

我沒有得到確切的同樣的錯誤,但你應該。請注意這裏有兩件事:

首先s.send期望一個字節數組而不是字符串。在python3中,這些是不同的東西:一個字符串不再包含字節,而是包含unicode代碼點。由文字前綴b形成,如b"hello"

其次,在嘗試發送內容之前,您可能希望在套接字上建立連接。你可以使用s.listens.accept

+0

我在我的代碼中執行此操作時遇到了一些問題。你能給我一個代碼示例嗎? –

+0

@IsmailAkyol你讀過關於套接字編程的教程(https://docs.python.org/3/howto/sockets.html)嗎?請注意示例所在的位置 - 服務器端和客戶端的設置有所不同。 – skyking

相關問題