[python] M2Crypto를 사용하여 SSL/TLS 서버에서 큰 파일을 전송하는 방법은 어떻게 되나요?
먼저, M2Crypto를 사용하여 SSL/TLS 서버를 설정합니다. 다음은 서버를 설정하는 간단한 예제 코드입니다.
from M2Crypto import SSL, Connection, threading
import os
class SSLServer(threading.Thread):
def __init__(self, port, certfile, keyfile):
threading.Thread.__init__(self)
self.port = port
self.ctx = SSL.Context()
self.ctx.load_cert(certfile, keyfile)
def run(self):
server_socket = SSL.Connection(self.ctx)
server_socket.bind(('localhost', self.port))
server_socket.listen(5)
client_socket, addr = server_socket.accept()
file_path = '/path/to/your/large/file'
file_size = os.path.getsize(file_path)
client_socket.sendall(str(file_size))
with open(file_path, 'rb') as f:
while True:
data = f.read(8192)
if not data:
break
client_socket.sendall(data)
client_socket.close()
server_socket.close()
server = SSLServer(443, 'server-cert.pem', 'server-key.pem')
server.start()
위 코드를 사용하면 M2Crypto를 사용하여 SSL/TLS 서버를 구현하고 클라이언트로부터 수신한 파일 크기를 전송한 후, 실제 파일 데이터를 전송합니다.
이렇게 하면 SSL/TLS 보안 프로토콜을 통해 안전하게 큰 파일을 전송할 수 있습니다.