【发布时间】:2017-11-04 05:30:04
【问题描述】:
我想将来自客户端的所有消息存储在我的“TCP 服务器”上的列表中。
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()
当服务器收到第一条消息时,handle 函数将消息附加到列表中。
当服务器收到来自客户端的第二条消息时,之前附加的消息没有任何痕迹。
免责声明:我知道为什么会这样。我只是想不出一种将所有消息存储在列表中的方法。我只想使用
SocketServer来实现这个。
【问题讨论】:
-
为什么会这样?
-
我刚刚测试了你的代码,运行它然后多次执行
echo -e abcd | nc localhost 9999,每条新消息都会附加到requests。 -
您的代码有效,如下面的回答所示。如果你所拥有的东西不起作用,那是你没有显示的代码。创建minimal reproducible example。
标签: python sockets tcp socketserver tcpsocket