Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Twisted reactor.listenTCP间歇性无法正确连接_Sockets_Twisted_Twisted.internet - Fatal编程技术网

Sockets Twisted reactor.listenTCP间歇性无法正确连接

Sockets Twisted reactor.listenTCP间歇性无法正确连接,sockets,twisted,twisted.internet,Sockets,Twisted,Twisted.internet,我正在linux上使用reactor.listenTCP运行TCP服务器 所有这些都可以正常工作数小时(或数天),然后发生一些事情,客户端可以连接,但服务器会立即断开它们的连接 我的协议实现中没有命令断开连接的内容。 客户端实现中没有任何东西会导致这种断开连接 服务器使用sendLine(数据)向在用户列表中找到的所有用户间歇发送一些数据 我想知道当客户端断开连接时,我是否应该执行一些操作,因为我错过了amd。这会导致套接字问题 class MsgHandler(Protocol): d

我正在linux上使用reactor.listenTCP运行TCP服务器

所有这些都可以正常工作数小时(或数天),然后发生一些事情,客户端可以连接,但服务器会立即断开它们的连接

我的协议实现中没有命令断开连接的内容。 客户端实现中没有任何东西会导致这种断开连接

服务器使用sendLine(数据)向在用户列表中找到的所有用户间歇发送一些数据

我想知道当客户端断开连接时,我是否应该执行一些操作,因为我错过了amd。这会导致套接字问题

class MsgHandler(Protocol):
    def __init__(self, factory):
        self.factory = factory
    def connectionMade(self):
        self.factory.users.append(self)
    def connectionLost(self, reason):
        self.factory.users.remove(self)
    def dataReceived(self, data):
        pass

class outputTcpServerFactory(Factory):
    def __init__(self, users):
        self.users = users
    def buildProtocol(self, addr):
        return MsgHandler(self) 

class Mainloop(object):
    def __init__(self):
        self.users = []
        s = reactor.listenTCP(port, outputTcpServerFactory(self.users))
        reactor.run()
--->mainLoop类中的其他地方是定期运行的代码:

for client in self.users:
    client.sendLine(data)

您应该始终这样做,以便可以看到应用程序遇到的未处理异常。这些通常可以清楚地说明某些东西损坏的原因。

请附上一个简单、完整、正确的示例来说明您的问题。这个不完整。感谢Jean Paul-我已经启用了日志记录,并将看到它的结果