-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]。 –