我正在编写一个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')
错误:
Traceback(最近一次调用最后一次):文件“s_client.py”,第12行,in
conn = sock.connect((host,port))文件“C:\ Program Files \ python27 \ lib \ socket.py”,第224行,在meth return getattr(self._sock,name)(* args)socket.error :[Errno 10061]──Ί▐ΪάΊΊάΪ▐ύϊύΉώΎΫ±▀▀ά≤²Ίϊί≤ύ≥,
所以任何想法,这将有助于不终止客户端,但让它不断寻找服务器,是受欢迎的 .
1 回答
使用
try
-except
:最好避免初始
connect
调用,并仅通过while
循环中的connect
执行连接 . 我也进行了一些其他更改,例如将sleep
调用移动到except
部分 .