2013-01-20 52 views
0

具有2 Python程序,host1.py和同时运行,并且经由socket使得通信host2.py -socket.recv(256)如何返回None?

host1.py具有reciveSock = socket(AF_INET,SOCK_DGRAM)

host2.py具有sendSocket = socket(AF_INET,SOCK_DGRAM)

两个套接字都相互绑定。

host1.py有 -

try: 
    msgBacked = reciveSock.recv(256) 
except: 
    pass 
if(msgBacked is None): 
    print "isNone!" 

事实上它打印isNone!平均msgBackedNone

所有发送的从host2.pyhost1.py是一种sendSocket.send("ACK")以便有哪些tranported到host1.py发送字符串的值。

那么这个msgBacked怎么可能是None

+2

如果删除'try/except'会怎么样? –

+0

@DavidWolever:'msgReturn = reciveSock.recv(256) socket.timeout:timed out' – URL87

+4

**这**是**完全**为什么'尝试:...除了:pass'就是*单*在Python中你可以做的最可怕的事情!那么if语句中的那些'()'怎么了?它是Python,而不是<某种其他语言>!请..没有Python开发人员想看到那里的括号! – ThiefMaster

回答

3

最可能的是receiveSock.recvthrowing a timeout exception,msgBacked先前被设置为None。尝试删除try .. except,看看会发生什么。