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