我想为我的程序添加SSL支持。我在非阻塞套接字上使用了ssl.wrap_socket来创建一个SSLSocket。Python - SSLSocket.recv()只返回一个字节
现在我去从套接字读取...
try:
data = sslsock.recv(4096)
except socket.error as e:
# error
...
为什么我只能收到一个字节?我知道有超过1个字节可用。
当我使用这个,而不是...
data = ''
while 1:
try:
data += self.sock.recv(4096)
except socket.error as e:
if data:
break
else:
# error
...
字节的完整字符串返回。在使用wrap_socket之前,总是从recv调用中返回完整的字节串。
注意:在select()调用返回之后,recv()从套接字开始并且它仍然只返回单个字节之前,我已尝试睡眠。这在使用python2.7的linux和Windows上都有发生。 – user202987 2014-10-10 16:23:00