我試圖做一個簡單的客戶端&在python服務器消息傳遞程序,我不斷收到錯誤「TypeError:'str'不支持緩衝區接口」,不要真的甚至知道這意味着什麼。我大部分時間都是python的初學者,並且是一個網絡完整的初學者。TypeError:str不支持緩衝區接口
我出於某種原因假設我無法發送字符串數據?如果是這種情況,我會如何發送一個字符串?
僅供參考,我從Python 2中獲得的大部分代碼示例都是針對python 2.x的,我在Python 3中這樣做,所以我認爲這是從版本轉換中解決的另一個問題。我搜索了相同的問題,但無法真正解決如何將相同的修復應用於我的情況。
這裏的服務器開始代碼:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 5000))
server_socket.listen(5)
print("TCP Server Waiting for client on port 5000")
while 1:
client_socket, address = server_socket.accept()
print("TCP Server received connect from: " + str(address))
while 1:
data = input("SEND(Type q or Q to quit):")
if(data == 'Q' or data == 'q'):
client_socket.send(data)
client_socket.close()
break;
else:
client_socket.send(data)
data = client_socket.recv(512)
if(data == 'q' or data == 'Q'):
client_socket.close()
break;
else:
print("Received: " + data)
嘗試發送['StringIO.StringIO(data)'](http://docs.python.org/library/stringio.html)而不是'data'。 – 2012-08-02 16:15:53
附註:如果數據在('q','Q'):' – gsk 2012-08-02 16:16:56
@gsk:或'if data.lower()==「q」:' 。 – 2012-08-02 16:30:50