我正在使用 python 中的套接字制作一个聊天应用程序,但是当我尝试从另一台计算机连接时,它会显示:
C:\Users\James\OneDrive\Documents\Python\Projects\Gui Chat\client.pyw [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
这是套接字的服务器代码:
host = socket.gethostbyname(hostname)
port = 55555
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
print(f"IP: {server.getsockname()[0]}\nPORT: {server.getsockname()[1]}")
server.listen()
我还有一个 while True
循环接受所有请求:
while True:
client, address = server.accept()
print(f"Connected with {str(address)}")
在客户端,这是套接字代码:
IP = simpledialog.askstring("IP", "Enter IP address", parent=root) # "192.168.1.252" # input("Enter IP: ")
nickname = simpledialog.askstring("Nickname", "Choose a nickname", parent=root)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
client.connect((IP, 55555))
except Exception as e:
print(e)
程序每次都会询问IP地址,当我输入服务器计算机的正确IP地址时,它会出现上述错误。如果我尝试从同一台计算机进行连接,并且它们都位于同一网络上,则它会起作用。最近还可以工作,现在就停止工作了。
更新: 我已将服务器 IP 设置为 0.0.0.0,已设置端口转发规则,已检查防火墙并允许传入和传出连接,并且已运行 nmap 并得到以下结果:
最佳答案
代码问题
首先尝试在 localhost
或 127.0.0.1
上绑定(bind)服务器。
防火墙/端口问题
检查您的计算机是否是默认计算机/防病毒软件
防火墙(托管服务器的地方)允许连接
在您的端口 55555
上。
如果带有客户端的计算机位于您的家庭网络之外
指向路由器公共(public)IP地址并确保您有
路由器上的端口转发设置。
解决问题
你确定你在客户端写的IP是正确的吗。
转到您的服务器计算机并检查该 IP。
Windows:
转到 cmd
或 Power Shell
并输入 ipconfig
,然后查找
IPv4 地址
部分并查看您所在的地址。
Linux/MacOS
转到您的终端并输入 ifconfig -a
,然后
它应该在那里的某个地方,但我没有那些系统,
所以我无法为你测试。如果它不起作用,请尝试搜索如何
找出来。
关于python - TCP 套接字未连接 [WinError 10060] - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68971888/