0

问题:我想在 Python 服务器和 Java 客户端之间建立连接。客户端引发异常:

java.net.ConnectException:连接被拒绝:连接

服务器代码:

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 连接工作正常。

4

2 回答 2

1

这似乎真的是一个连接问题,而不是真正的“Java”。也许有关您的环境的更多信息会有所帮助。

同时:

如果您有 telnet 客户端,请尝试像“telnet localhost 31123”一样运行它,这应该允许连接。否则,您连接的服务器有问题。

问候

于 2013-03-27T12:54:16.150 回答
1

一个问题是python服务器正在绑定并接受与服务器主机名对应的IP地址,但客户端正在尝试连接到“localhost”;即环回IP地址。

客户端需要使用与服务器绑定的主机名/IP 地址相同的主机名/IP 地址。如果客户端和服务器在不同的机器上,那么你根本不能使用“localhost”。(“localhost”名称通常表示127.0.0.*环回地址。顾名思义,到环回地址的连接“环回”到您要连接的主机;即环回连接不会离开客户端的机器/虚拟机。

于 2013-03-27T13:07:24.613 回答