【发布时间】:2011-03-15 05:03:06
【问题描述】:
我想知道是否可以在包装之前在原始套接字上接收/发送数据 - 我查看了文档并进行了搜索,但找不到任何具体内容。我基本上想做的事:
client, addr = listeningSocket.accept()
client.recv(32)
client.send(b'hello')
client.setblocking(0)
sslSocket = ssl.wrap_socket(client, keyfile='key.pem', certfile='cert.pem', server_side=True, ssl_version=ssl.PROTOCOL_TLSv1)
sslSocket.write(b'hello')
问题是我得到一个错误,我很确定在包装之前与 client.recv() 相关(或者至少我认为就是这样,因为我在添加 recv 之前没有得到它?)
sslSocket = ssl.wrap_socket(client, keyfile='key.pem', certfile='cert.pem', server_side=True, ssl_version=ssl.PROTOCOL_TLSv1)
File "/usr/lib/python3.1/ssl.py", line 381, in wrap_socket
suppress_ragged_eofs=suppress_ragged_eofs)
File "/usr/lib/python3.1/ssl.py", line 135, in __init__
raise x
File "/usr/lib/python3.1/ssl.py", line 131, in __init__
self.do_handshake()
File "/usr/lib/python3.1/ssl.py", line 327, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [Errno 8] _ssl.c:488: EOF occurred in violation of protocol
这合法吗?有没有办法做到这一点(我真的需要在包装之前发送,因为客户端在 SSL 数据开始泛滥之前需要一个原始字符串。)感谢任何可能的指导。
注意:我需要响应来自 flash 的策略请求。与 flash 的连接将是安全的,但策略请求不安全
【问题讨论】:
标签: python ssl sockets python-3.x