服务器单元拒绝连接I重置客户端机器
问题描述:
以下是我在服务中运行的代码。大多数情况下,脚本可以在天/星期运行良好,直到脚本打嗝和崩溃。我并不担心崩溃的部分,因为我可以适当地从错误日志中解决错误日志的原因。我面临的问题是,有时当服务重新启动并尝试再次连接到服务器时,它会得到(10061, 'Connection refused')
错误,以致服务无法再次启动。奇怪的是,当连接被拒绝时,没有python进程运行。 IE没有与图像名称“pythonw.exe”或“pythonservice.exe”进程。应该指出,我无法连接到任何其他机器的服务器,直到我重置运行客户端脚本的计算机。客户端机器在Windows Server 2003操作系统上运行python 2.7。还应该注意的是,服务器是在一个我无法访问代码的硬件上编码的。服务器单元拒绝连接I重置客户端机器
try:
EthernetConfig = ConfigParser()
EthernetConfig.read('Ethernet.conf')
HOST = EthernetConfig.get("TCP_SERVER", "HOST").strip()
PORT = EthernetConfig.getint("TCP_SERVER", "PORT")
lp = LineParser()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
reader = s.makefile("rb")
while(self.run == True):
line = reader.readline()
if line:
line = line.strip()
lp.parse(line)
except:
servicemanager.LogErrorMsg(traceback.format_exc()) # if error print it to event log
s.shutdown(2)
s.close()
os._exit(-1)
答
原来,网络管理员有端口关闭,我试图连接到。它对于属于服务器的一个IP是开放的。问题在于服务器有两个带两个独立IP的网卡。问题现已解决。
答
连接被拒绝是一个错误,意味着连接另一端的程序不接受您的连接尝试。很可能它没有注意到你崩溃,并没有关闭它的连接。
你可以做的仅仅是睡了一小会儿(30-60秒),然后再试一次,并在一个循环做到这一点,并希望另一端的通知,在断开的连接,因此它可以再次接受新的连接。
+1延迟是一个好主意,我会试试看。但是它仍然不能解释为什么即使没有python进程打开,我仍然无法连接到服务器。即使过了一段时间。 – Richard
@Richard:不,这是拒绝连接的服务器,你的结局没有任何错误。 –
感谢您的帮助。我意识到服务器拒绝连接。阅读文档它一次只允许2个连接。我不明白的是,当我重置客户端机器时,我能够再次连接到服务器,这使我相信有一些东西在客户端机器上使用连接,虽然我没有证据证明它确实如此。 – Richard