好的,所以我尝试通过 SSL 套接字连接在服务器和客户端之间进行来回通信。我认为最好的方法是在每个线程中实现 2 个线程,每个线程分别充当服务器和客户端。但是当我实现此代码时(显然在其他服务器/客户端中使用相反的相应端口) :
#secserv.py
import socket
from OpenSSL import SSL
import threading
import time
class SecureIn(threading.Thread):
context = SSL.Context(SSL.SSLv23_METHOD)
context.use_privatekey_file('key')
context.use_certificate_file('cert')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = SSL.Connection(context, s)
s.bind(('', 5570))
def run(self):
while True:
self.s.listen(5)
(connection, address) = self.s.accept()
print repr(connection.recv(5570))
class SecureOut(threading.Thread):
time.sleep(6)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 12345))
sslSocket = socket.ssl(s)
print repr(sslSocket.server())
print repr(sslSocket.issuer())
def run(self):
sslSocket.write('Hello secure socket\n')
s.close()
si = SecureIn()
si.start()
time.sleep(6)
so = SecureOut()
so.start()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent …Run Code Online (Sandbox Code Playgroud)