首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python套接字SSL OSError:[WinError 10057]不允许发送或接收数据的请求,因为套接字未连接并且(wh

Python套接字SSL OSError:[WinError 10057]不允许发送或接收数据的请求,因为套接字未连接并且(wh
EN

Stack Overflow用户
提问于 2021-08-07 17:09:47
回答 1查看 426关注 0票数 0

完整错误码:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "C:\path\to\my\python\code\server_ssl_testing.py", line 15, in <module>
    response = ssock.recv(1024).decode("utf-8")
  File "C:\Program Files\Python39\lib\ssl.py", line 1228, in recv
    return super().recv(buflen, flags)
OSError: [WinError 10057] A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied

我创建了SSL套接字服务器和客户端,但是服务器试图从客户端接收信息,但它失败了,并打印了上面的文本错误。

服务器:

代码语言:javascript
运行
复制
import socket
import ssl

context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain('certs/server-cert.pem', 'certs/server.key')

with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
    sock.bind(('localhost', 2642))
    sock.listen(5)
    with context.wrap_socket(sock, server_side=True) as ssock:
        conn, addr = ssock.accept()
        response = ssock.recv(1024).decode("utf-8")
        print(response)

客户端:

代码语言:javascript
运行
复制
import socket
import ssl

hostname = 'localhost'
context = ssl.create_default_context()

sock = socket.create_connection((hostname, 2642))
ssock = context.wrap_socket(sock, server_hostname=hostname)
msg = "Hello World!"
ssock.send(msg.encode("utf-8"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-08 12:12:32

在server.py中,我应该编写conn.recv而不是ssock.recv。如果将来有人想要这样做,应该会有所帮助=)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68694569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档