2014-09-06 15 views
-2
`import socket 
def Main(): 
    host = "127.0.0.1" 
    port = 2000 

    s = socket.socket() 
    s.connect((host, port)) 

    message = input("-> ") 

    while message != "q": 
     s.send(message) 
     data = s.recv(1024) 
     print("Received from server: " + str(data)) 
     message = input("-> ") 
    s.close() 
if __name__ == '__main__': 
    Main() #a problem with this code` 

錯誤(http://pastebin.com/AvaGSJzB) 請幫我 我不知道該怎麼辦類型錯誤:「STR」不支持緩衝界面,它是不是在這裏給出的所有

+1

請將您的錯誤與您如何調用此代碼一起放在這裏。 – Marcin 2014-09-06 20:45:42

回答

1

的錯誤意味着你想一個Unicode字符串傳遞給需要的二進制數據,例如bytes一個接口,bytearray

encoding = 'utf-8' 
s.send(message.encode(encoding)) 
data = s.recv(1024).decode(encoding) # assume the whole answer arrived 

或者你可以換插座對象使用s.makefile()一個文本文件,到無效手動編碼文本。

+0

謝謝,你能幫我用這個文件嗎? (http://pastebin.com/GSckEaz7) – 2014-09-06 21:05:08

+0

這是一樣的故事... – 2014-09-06 21:06:08

+0

@DanielPastushchak:不要把代碼放入pastebin,[更新你的問題](http://stackoverflow.com/posts/25704570 /編輯)。您錯誤地複製了代碼。 – jfs 2014-09-06 22:19:16

相關問題