python - 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()
请帮帮我。我检查了与该主题相关的问题,但无法找出我的解决方案。
解决方案
这是问题:
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 协议
推荐阅读
- sql - 在 Rails 中执行 sql 查询时如何访问嵌套的哈希值?
- python - 如何使用 Python async/await 同时运行两个任务?
- javascript - 如何在`beforeunload`事件的刷新页面上向服务器发送请求?
- vimeo - Vimeo API - 获取哪个用户是主持人的所有频道?
- sql - 查询在企业版 postgres 中有效,但在社区版中无效
- react-native - WebStorm 使用 react-native-web 导入错误?
- java - 在 Apache Tomcat 中,是否可以有多个访问日志文件,由连接器过滤?
- .net-core - 在管道中构建 .NETCORE 1.0 api 应用程序
- tensorflow - 未能在 Tensorflow 2.1.0 中为 tf.data 应用矢量化映射
- javascript - 每天在特定时间之间运行一个节点调度程序