0
sock1.settimeout(2)
conn.settimeout(1) #conn comes from sock1
except socket.timeout, e:
print <responsible socket>
有沒有辦法區分負責超時的套接字? 也許我做錯了,如果我有兩個套接字超時。查找負責超時的套接字?
sock1.settimeout(2)
conn.settimeout(1) #conn comes from sock1
except socket.timeout, e:
print <responsible socket>
有沒有辦法區分負責超時的套接字? 也許我做錯了,如果我有兩個套接字超時。查找負責超時的套接字?
據我所知,socket.timeout
標識套接字的異常對象沒有任何內容。所以,你需要保持跟蹤你的,那將是超時的一個讀的插座:
try:
cursock = sock1
data = sock1.recv(bufsize)
cursock = conn
data1 = conn.recv(bufsize)
except socket.timeout, e:
print cursock
或者你可以換try/except
各地各recv
通話。你可以把它變成輔助函數:
def try_recv(sock, bufsize, flags=0):
try:
return sock.recv(bufsize, flag)
except socket.timeout, e:
print sock
Oooh。這很聰明!謝謝 – Tai