问题: 我想在 Python 服务器和 Java 客户端之间建立连接。客户端抛出异常:
java.net.ConnectException: Connection refused: connect
服务器代码:
print('MOTD/name system initialized!')
global people
welcome = socket.socket()
welcome.bind((socket.gethostname(), 31123))
while True:
welcome.listen(1)
w, nouse = welcome.accept()
...
w.send(m.strip().encode())
w.close()
客户端代码:
Socket welcomesocket = new Socket("localhost", 31123);
BufferedReader motd = new BufferedReader(new InputStreamReader(welcomesocket.getInputStream()));
servs.set(i, motd.readLine());
welcomesocket.close();
问题一定是在 Java、Python 中 - 在相同情况下 Python 连接工作正常。
最佳答案
一个问题是python服务器正在绑定(bind)并接受与服务器主机名对应的IP地址,但客户端正在尝试连接到“localhost”;即环回 IP 地址。
客户端需要使用与服务器绑定(bind)相同的主机名/IP 地址。如果客户端和服务器在不同的机器上,那么你根本不能使用“localhost”。 (“localhost”名称通常表示 127.0.0.*
环回地址。顾名思义,到环回地址的连接“环回”到您要连接的主机;即环回连接不会断开客户端的机器/虚拟。
关于java - Python 服务器和 Java 客户端之间的连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659132/