-2
我想将来自客户端的所有消息存储在我的'TCP服务器'列表中。Python TCP Socket服务器存储来自客户端的消息
import SocketServer
class MainServerHandler(SocketServer.BaseRequestHandler):
requests = []
def handle(self):
message = self.request.recv(4)
self.requests.append(message)
HOST, PORT = "localhost", 9999
server = SocketServer.TCPServer((HOST, PORT), MainServerHandler)
server.serve_forever()
当服务器收到第一条消息时,句柄函数将消息追加到列表中。
当服务器收到来自客户端的第二条消息时,没有跟踪先前附加的消息。
免责声明:我知道为什么会发生这种情况。我只是无法找出将所有消息存储在列表中的方法。我只想使用
SocketServer
来实现这一点。
为什么会发生? – 2017-11-04 06:08:34
我刚刚通过运行它来测试代码,然后执行'echo -e abcd | nc localhost 9999'多次,每个新消息被附加到'requests'。 – 2017-11-04 06:26:09
您的代码正常工作,如下面的答案中所示。如果你有什么不工作,它是在你没有显示的代码中。制作[mcve]。 –