本地PC无法读取同一网络中其他PC的插槽

时间:2012-01-13 21:13:02

标签: java sockets networking local

我正在测试来自Oracle.com的Java套接字读/写基本示例

如果我在同一台机器上运行服务器和客户端,它可以读/写。 但是当它从其他PC上读取时它不起作用。

这是他们通过同一个集线器连接的方式。 互联网 - >本地网络 - >集线器 - > PC1和PC2

PC1是运行KnockKnockServer.java的服务器。 PC2是一个运行KnockKnockClient.java的客户端。

一切都与默认的KnockKnockClient.java相同,但是这个:

    kkSocket = new Socket("PC1", 18090);

但是我得到“无法获得连接到:PC1的I / O”错误。

我在PC1中的卡巴斯基程序中打开了相同的端口,在PC2中打开了防火墙。 即使我在PC1中关闭了卡巴斯基和防火墙,也会出现同样的错误。

有什么想法吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

尝试使用IP地址而不是远程主机名:

kkSocket = new Socket("192.168.0.1", 18090);

Windows网络通常使用WINS来解析主机名,而不是DNS - 大多数家庭网络甚至没有DNS服务器。这允许Windows本身按名称查找远程服务(例如共享),但大多数应用程序仍然需要适当的DNS基础结构才能使用。

或者,您可能希望编辑hosts文件,以将网络上任何主机的IP地址与其名称相关联。