Win Error 10061 由于目标机器主动拒绝,无法建立连接

Win Error 10061 No connection could be made because the target machine actively refused it

我一直在试验 python 的套接字库。我为服务器和客户端制作了一个简单的程序,客户端可以在其中向服务器发送消息。

这是我的服务器代码:

import socket

print("Host")

socket_main = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_main.bind(('127.0.0.1', 9999))

socket_main.listen(1)
conn, addr = socket_main.accept()

while True:
    data = conn.recv(1204).decode()
    print(data)

conn.close()

这是我的客户端代码

import socket

print("Client")

socket_main = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_main.connect(('127.0.0.1', 9999))

while True:
    message = input(": ")
    socket_main.send(message.encode())

socket_main.close()

当我 运行 这些程序在一台计算机上的两个不同终端上运行时它工作得很好,但是当我尝试 运行 不同计算机上的服务器和客户端时,客户端出现错误最后说,“无法建立连接,因为目标机器主动拒绝它”。

我试过多次更改端口,但没有用。我已经浏览了很多其他论坛,但是我已经有一段时间没能解决这个问题了,所以我决定在这里问一下。

when I try to run the server and client on different computers I get an error on the clients end

那是因为你在两边都使用了127.0.0.1。那是本地主机环回 IP 地址。当客户端和服务器在同一台机器上时它可以工作,但它在 LAN 网络上不可路由。

您需要:

  • 更改服务器以侦听 0.0.0.0(侦听所有已安装的网络接口)或其实际 LAN IP 地址(仅连接到 LAN 的网络接口)。

  • 更改客户端以连接到 LAN 上服务器的主机名或 IP 地址。

I have tried changing the port multiple times but it didn't help

问题出在端口上,但出在 IP 地址上。