sock.setblocking(0)
try:
data = sock.recv(1024)
except socket.error, e:
if e.args[0] == errno.EWOULDBLOCK:
print 'EWOULDBLOCK'
else:
if not data: #recv over
sock.close()
print 'close================='
else:
print 'recv ---data---------'
poem += data
所有上面的代碼是在loop.using non-blocking socket
(只是想測試「非阻塞套接字」)來獲取數據。但總是打印'EWOULDBLOCK',我不知道爲什麼?非阻塞套接字,錯誤總是
添加所有代碼,包括設置套接字以及您正在運行的Python版本和操作系統。 – StefanE 2012-07-25 10:41:48
僅供參考:'os.strerror(e.args [0])'會輸出錯誤字符串。 – Alex 2015-10-21 08:40:31