我正在尝试用Python制作一个简单的客户端和服务器消息程序,但我一直收到“TypeError: 'str' does not support the buffer interface”的错误,而且我甚至不知道这意味着什么。对于大部分Python来说我是初学者,对于网络编程则是完全的初学者。
我假设出现了某种原因导致我无法发送字符串数据?如果是这种情况,我应该如何发送字符串?
值得参考的是,我获得此代码的示例主要针对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)
,而不是只发送data
。 - Andrew Clarkif data in ('q', 'Q'):
- gskif data.lower() == "q":
。 - Tim PietzckerTrue
给data = ""
或者data = "qQ"
„ÄÇ - Tim Pietzcker