首页 > 解决方案 > Python ssl 套接字类型错误

问题描述

我正在编写一个简单的 ssl 安全客户端服务器回显消息程序。我收到客户端类型错误 -> 需要整数。下面是客户端的代码

 import socket
import ssl

c_con = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip = '*******'
server_port = 4444
print('Connecting to %s port %d' % (server_ip,server_port))
c_con.connect((server_ip,server_port))

ssl_sock = ssl.wrap_socket(c_con,ssl_version = "TLSv1")

try:
    message = raw_input('Enter your message --> ')
    print('Sending "%s"' % message)
    ssl_sock.sendall(message)

    #Echo part
    amount_received = 0
    amount_expected = len(message)

    while amount_received < amount_expected:
        data = ssl_sock.recv(1024)
        amount_received += len(data)
        print('Received "%s"' % data)

finally:
    print('Closing socket')
    ssl_sock.close()

请帮帮我。我检查了与该主题相关的问题,但无法找出我的解决方案。

标签: pythonpython-2.7sockets

解决方案


这是问题:

ssl_sock = ssl.wrap_socket(c_con,ssl_version = "TLSv1")

tls 版本不正确,您必须这样做:

ssl_sock = ssl.wrap_socket(c_con,ssl_version = ssl.PROTOCOL_TLSv1)

不要使 ssl.PROTOCOL_TLSv1 成为 str ,它的alerady已定义

并检查您的主机是否可以支持 TLSv1 协议


推荐阅读