python - 我的 Python 套接字程序有问题 [WinError 10057]
问题描述
我正在编写一个在两台不同计算机上工作的简单客户端-服务器套接字程序。服务器是具有静态 IP 地址的台式机,客户端是连接到 Wi-Fi 的笔记本电脑。两者都使用 Windows 10 作为操作系统。我也打开了防火墙端口。
这是我的代码。此代码在一台计算机上运行良好,但是当另一台计算机(我的笔记本电脑)尝试连接到服务器时会出现 WinError 10057。
服务器.py
from socket import *
import sys
HOST = '0.0.0.0'
PORT = 16161
BUFSIZE = 1024
ADDR = (HOST, PORT)
CLIENT_NUM = 5
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(ADDR)
print('bind')
serverSocket.listen(CLIENT_NUM)
print('listen')
while True:
try:
connectionSocket, addr_info = serverSocket.accept()
print('accept')
print('--client information--')
print(connectionSocket)
data = connectionSocket.recv(BUFSIZE)
print('Received data:', data.decode())
connectionSocket.send('OK'.encode())
connectionSocket.close()
except KeyboardInterrupt:
sys.exit(0)
客户端.py
from socket import *
import sys
HOST = '*.*.*.*' # server's ip address
PORT = 16161
BUFSIZE = 1024
ADDR = (HOST, PORT)
clientSocket = socket(AF_INET, SOCK_STREAM)
try:
clientSocket.connect_ex(ADDR)
clientSocket.send('Hello!'.encode()) # WinError 10057 occurs
except Exception as e:
print(e)
print('%s:%s' % ADDR)
sys.exit(1)
print('connect is success')
receive = clientSocket.recv(BUFSIZE)
print(receive.decode())
clientSocket.close()
解决方案
我已经修好了。我要求我的组织打开防火墙端口,打开防火墙端口时连接成功。
推荐阅读
- azure - 为 Azure Active Directory 用户创建 SQL 登录
- asp.net-mvc - Kendo MVC 网格,隐藏 .Filterable
- java - SonarQube 分析显示代码覆盖率 0
- sql - 使用 case 表达式将数据插入表中
- java - 如何以及在何处分配参考 ID?
- reactjs - 如何替换 immutableJs 中的集合
- git - 不支持从 SVN 迁移到 GIT 请求的身份验证类型
- python - 如何在 Python 中检查 n 个列表并将其转换为 pandas 数据框?
- unity3d - 如何在 Unity 中的兼容组件上使用 HoloLens 2 手部跟踪和近交互输入(Near Interaction Grabbable、Manipulation Handler)
- reactjs - 使用远程数据搜索不适用于 React 材料表