python - 我正在学习套接字但我的代码但我无法连接到端口
问题描述
#server
import socket
s = socket.socket()
print("Socket connected")
s.bind((socket.gethostname(),9999))
s.listen(3)
print("waiting for connection")
while True:
c, addr = s.accept()
print("connected with",addr)
c.send(bytes("Welcome!","utf-8"))
c.close()
#client
import socket
c = socket.socket()
c.connect((socket.gethostname(),9999))
msg = c.recv(1024)
print(msg.decode("utf-8"))
运行客户端后我收到错误消息:OSError: [WinError 10048] 通常只允许使用每个套接字地址(协议/网络地址/端口)
解决方案
该错误表明您尝试绑定的端口当前正在使用中。即使您停止程序,绑定后端口仍会占用几分钟的时间。
您需要reuse address
在绑定到代码中的端口之前启用该选项。
您可以这样做:
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
您可以在以下链接中获取详细信息:
推荐阅读
- c# - 无法将“System.Byte”类型的对象转换为“System.UInt64”类型
- powershell - 尝试使用 powershell 进行 Rest 调用(PUT)
- python - “gi”库代表什么?
- npm - 什么是标准项目 README 和 CHANGELOG 变体?
- powershell - 将 PDF 打印到 PowerShell 中的文件
- android - 当我按下后退按钮时,Android 活动失去了我从 UI 中的输入
- rust - 我如何接受一个选项
,处理它,并返回一个选项 ? - r - 逐组查找包含和低于给定行的行中的最小值
- node.js - 如何在 Azure DevOps 中为 Node.js Web 应用创建发布管道?
- powershell - 遍历目录并使用 Powershell 删除 csv 标头