WinError 10061,Python服务器和客户端连接问题

2024-05-12 00:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个脚本:server.pyclient.py,我正在尝试全局连接它们。它们是这样的:

server.py

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("", 5050))

while True:
    conn, addr = server.accept()

client.py

import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("[my public ip (don\'t want to give away)]", 5050))

当我运行server.py时,一切都很好。当我尝试与client.py连接时,会收到错误消息:ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it。我把防火墙关掉了

此外,我尝试了这些问题,但没有解决问题:
No connection could be made because the target machine actively refused it?
How to fix No connection could be made because the target machine actively refused it 127.0.0.1:64527
No connection could be made because the target machine actively refused it 127.0.0.1:3446
No connection could be made because the target machine actively refused it 127.0.0.1
Errno 10061 : No connection could be made because the target machine actively refused it ( client - server )


Tags: thenopyclienttargetserversocketbe
2条回答

您是否在路由器上转发本地IP和TCP端口

如果没有,您将需要通过192.168.0.1(取决于路由器上的设置)登录路由器,进入端口转发并添加一条规则(针对我的路由器),说明服务器的本地IP和TCP端口5050(来自您的代码)并保存它

在绑定中而不是在“”中,您应该写入“0.0.0.0”以获取所有连接。此外,如果在同一台计算机上运行服务器和客户端,则应使用“127.0.0.1”而不是公共IP地址,因为连接是在您自己的计算机上完成的。如果您在不同的计算机上运行,您可以使用计算机的本地IP地址,同样,不需要公共IP地址(您可以使用cmd-write-IPCONFIG找到它,它会显示出来,大多数时候它看起来像“192.168.x.x”。我将在这里添加适用于我的代码供您使用:

server.py

import socket
server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 5050))
server_socket.listen(1)
(client_socket, client_address) = server_socket.accept()
client_name = client_socket.recv(1024)
what_to_send = 'Hello ' + client_name.decode()
client_socket.send(what_to_send.encode())
client_socket.close()
server_socket.close()

client.py

import socket
my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_socket.connect(('127.0.0.1', 5050))
name = input("Enter your name: ")
my_socket.send(name.encode())
data = my_socket.recv(1024)
print(data.decode())
my_socket.close()

相关问题 更多 >