Python流请求处理器
我有一个套接字服务器在运行 StreamRequestHandler 类。问题在于我向套接字写回数据时,客户端似乎没有收到这些数据。
class MyTCPHandler(SocketServer.StreamRequestHandler)
def handle(self):
while 1:
self.data = self.rfile.readline()
...process data and pref result...
self.wfile.write(result)
break
这看起来很简单,我是不是漏掉了什么?有没有办法清空发送缓冲区,因为我发送的数据量非常少?
1 个回答
2
如果我理解得没错,你遇到的问题是服务器向客户端发送数据时出现了麻烦。我之前也遇到过同样的问题。结果发现,wfile
和 rfile
是 BytesIO 类型,只能处理二进制数据。
所以如果你的 result
是普通字符串,你需要把它转换成二进制格式。
bstring = b"你的字符串"
bstring = bytes("普通字符串", "utf8")
class MyTCPHandler(SocketServer.StreamRequestHandler)
def handle(self):
while 1:
self.data = self.rfile.readline()
if not self.data:
break
self.wfile.write(b"Got some data\n")