首页 > 解决方案 > 我正在学习套接字但我的代码但我无法连接到端口

问题描述

#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] 通常只允许使用每个套接字地址(协议/网络地址/端口)

标签: pythonsocketsport

解决方案


该错误表明您尝试绑定的端口当前正在使用中。即使您停止程序,绑定后端口仍会占用几分钟的时间。

您需要reuse address在绑定到代码中的端口之前启用该选项。

您可以这样做:

s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

您可以在以下链接中获取详细信息:

http://hea-www.harvard.edu/~fine/Tech/addrinuse.html


推荐阅读