2011-08-26 47 views
0

连接建立之前套接字是否可以继续尝试连接到指定的套接字?python中的无限套接字连接尝试

如果你可能介意我举例说明它是如何完成的?我搜索了谷歌和堆栈溢出,但没有发现任何有用的东西。

在此先感谢。

回答

2

如何:

while True: 
    if do_connection_attempt(): 
     break 

其中do_connection_attempt是试图相连接的占位符,返回True如果已建立了连接?

+0

或者更简洁:'while do_connection_attempt():pass' – cdhowie

+0

它应该包含超时或休眠以保持CPU使用的合理性。 – Ber

+0

它可以在'do_connection_attempt()'中做到这一点。它会提高可读性,如果循环留下这种方式(cdhowie的方式) –

-2

你是否指这样的事情?

def run(self): 
    while True: 
     try: 
      self.csock.connect(self.ADDR) 
     except socket.error: 
      self.run() 

如果是这样,经过几次尝试后会产生错误。

+1

不知何故,我不认为递归调用无限循环内没有休息是一个非常好的主意...... – immortal

+0

它肯定会产生错误,因为它是无限递归的情况下(如果没有建立连接) – Ber

+0

这应该如何写呢?我现在完全失去了。 – Dinko