我有一个SocketServer.StreamRequestHandler呼叫的服务器self.rfile.readline文件()读取请求,然后调用self.wfile.write(data)发送回一些数据:
class FileServerHandler(SocketServer.StreamRequestHandler):
def handle(self):
# self.rfile is a file-like oject created by the handler
data = self.rfile.readline()
if data == "msg":
self.wfile.write(someOtherData)
我希望我的客户端能够发送请求并从服务器接收“someOtherData”:
^{pr2}$但当我尝试这个的时候,客户就挂了。我哪里出错了?还有必要知道socket recv有多少数据,或者有没有一种方法只接收服务器写入的所有数据?在
当您的服务器正在执行self.rfile.readline文件()它一直在读取,直到收到换行符(“\n”)字符。所以你的客户需要短袜发送(“msg\n”)以终止读取命令。在
除了Jan的回答,我想提到如果您想收到您的确切消息,您需要使用strip删除您在字符串末尾的'\n'。在
相关问题 更多 >
编程相关推荐