python关闭应用程序错误_python – 由于“连接被拒绝”错误而阻止应用程序关闭...

我正在编写一个Python客户端,它连接服务器中的简单套接字(也用Python编写).我希望在服务器中的连接被拒绝时阻止客户端终止.换句话说,我想每30秒让客户端“搜索”服务器(如果没有连接).

这是我编写的代码,但是当连接从服务器终止时,客户端返回连接被拒绝的错误,并终止自身.

码:

#!/usr/bin/python

import socket

import time

while True:

sock = socket.socket()

host = socket.gethostname()

port = 4444

conn = sock.connect((host,port))

while(conn != None):

print 'Waiting for the server'

time.sleep(30)

sock = socket.socket()

host = socket.gethostname()

port = 4444

conn = sock.connect((host,port))

while True:

recv_buf = sock.recv(1024)

if (recv_buf == 'exit'):

break

print(recv_buf)

sock.send('hi server')

错误:

06001

conn = sock.connect((host,port)) File “C:\Program Files\python27\lib\socket.py”, line 224, in meth

return getattr(self._sock,name)(*args) socket.error: [Errno 10061] ─ίΊ ▐ΪάΊ ϊΫΊάΪ▐ ύ ϊύΉώΎΫ±ή▀ά ≤²Ίϊί≤ύ≥,

所以任何想法,这将有助于不终止客户端,但让它不断寻找服务器,是受欢迎的.

解决方法:

使用try-except:

conn = None

while(conn == None):

sock = socket.socket()

host = socket.gethostname()

port = 4444

try:

conn = sock.connect((host,port))

except:

print 'Waiting for the server'

time.sleep(30)

最好避免初始连接调用,并仅通过while循环中的connect执行连接.我也做了一些其他的更改,比如将睡眠调用移到except部分.

标签:python,sockets

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值