首页 > 解决方案 > Python 套接字 [WinError 10038] 尝试对非套接字的操作进行操作

问题描述

这不是重复的。

我已经搜索了几个小时才能找到答案,但没有运气,所以我在这里问。

我目前正在使用 python 的 socket 模块构建一个聊天服务器。当我运行服务器时,在客户端连接并且服务器这么说之后,我收到一个异常:

[WinError 10038] An operation was attempted on something that is not a socket

我已经构建了一个大大减少的服务器,它可以在这个服务器没有的地方工作。这让我很困惑,因为它几乎一行一行地做同样的事情。

tcpServer.py

tcpClient.py

简化:

测试服务器.py

测试客户端.py

标签: pythonpython-3.xsocketspython-sockets

解决方案


让我为你澄清几件事:

  • 在服务器端:你创建一个套接字,绑定它,然后监听连接。
  • 在客户端:您创建一个套接字,然后尝试连接到服务器。

在您的情况下,服务器端很好,但是,在客户端,您需要删除此行:

s.bind(("127.0.0.1",port))

你通常会做这样的事情,例如:

ip = '127.0.0.1'
port = 1234
s.connect((ip, port))
s.send("hello".encode("utf-8"))
while True:
    s.send(input().encode("utf-8"))

推荐阅读