据我所知,twisted 是异步和事件驱动的,有人告诉我他们不需要超时。我必须构建一个服务器应用程序,它将连接到 100 多个客户端,这些客户端是嵌入式机器,每 2 分钟向服务器发送一次数据,每个数据包或数据的大小为 238 - 1500 字节。因此,现实生活中的情况下,tcp 会将数据分成多个数据包,因此它们是否需要实现超时或扭曲将处理这种情况。任何建议,因为我是新扭曲的。我的服务器有以下代码,没有超时。在超时结束时,如果在连接保持活动状态时未收到完整的数据包,我只想丢弃数据包。
class Server(LineReceiver):
def connectionMade(self):
self.factory.clients.append(self)
self.setRawMode()
self._peer = self.transport.getPeer()
print 'Connected Client', self._peer
def connectionLost(self, reason):
self.factory.clients.remove(self)
print 'Lost connection from', self._peer
def rawDataReceived(self, data):
inputArray = [ord(inp) for inp in data]
#do something
def main():
"""This runs the protocol on port 8000"""
factory = protocol.ServerFactory()
factory.protocol = Server
factory.clients = []
reactor.listenTCP(8000,factory)
reactor.run()