gpt4 book ai didi

python - 当新数据接收到套接字时 Windows 断开连接

转载 作者:行者123 更新时间:2023-11-28 18:48:28 25 4
gpt4 key购买 nike

我用 twisted 做了一个服务。在我转移到新服务器之前,一切正常。现在,当收到新数据时,我的服务会断开大部分连接。旧服务器安装了 32 位 Windows XP,新服务器是 Intel Server 上的 VMWare VM 和 Windows Server 2008 64 位。两台服务器上的 Python 和 twisted 版本相同。

在这里您可以看到问题的一个片段:

ConnectionLost reason is: Connection to the other side was lost in a non-clean fashion.

Python 版本为 2.7.5,Twisted 12.3

这是示例代码:

# -*- coding: utf-8 -*-
from twisted.internet import protocol, reactor
from twisted.python import log

class GreenProtocol(protocol.Protocol):

def __init__(self):
self.ip = ''
self.port = 0

def connectionMade(self):
self.ip = self.transport.getPeer().host
self.port = self.transport.getPeer().port
log.msg("[{0}:{1}] NEW CONNECTION".format(self.ip, self.port))

def dataReceived(self, data):
log.msg("[{0}:{1}] DATA".format(self.ip, self.port))

def connectionLost(self, reason):
log.msg("[{0}:{1}] CONNECTION LOST".format(self.ip, self.port))

class GreenFactory(protocol.ServerFactory):
protocol = GreenProtocol

if __name__ == '__main__':
factory = GreenFactory()
reactor.listenTCP(5678, factory)
log.startLogging(DailyLogFile('log.txt', 'logs'), setStdout=False)
reactor.run()

连接建立后,每个客户端发送一条消息。但仅记录了 5-10 条消息中的 1 条。大多数客户端在发送消息后失去连接,并且服务器未收到消息。

显然,原因是:

Connection to the other side was lost in a non-clean fashion: read error -- unknown (64)

P.S:我认为这不是扭曲的错误,因为当我用嗅探器听时,我得到了相同的结果。

P.P.S: 大约有 700 个客户端,其中只有 70-100 个可以发送数据,所有其他连接都被丢弃。

最佳答案

我找到了解决方案。问题是,提供商在没有任何通知的情况下更改了资费计划。新资费计划限制了最大连接数。

关于python - 当新数据接收到套接字时 Windows 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16830877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com