我正在测试来自Oracle.com的Java套接字读/写基本示例
如果我在同一台计算机上同时运行服务器和客户端,则可以读取/写入。
但是,当要从其他PC读取它时,它将不起作用。
这就是它们通过同一集线器连接的方式。
互联网->本地网络->集线器-> PC1和PC2
PC1是运行KnockKnockServer.java的服务器。
PC2是一个客户端,运行KnockKnockClient.java。
一切都与默认的KnockKnockClient.java相同,但这是:
kkSocket = new Socket("PC1", 18090);
但是我收到“无法获得与PC1的连接的I / O”错误。
我在PC1的Kaspersky程序和PC2的防火墙中打开了相同的端口。
即使我在PC1中关闭了卡巴斯基和防火墙,它也会显示相同的错误。
有任何想法吗?
谢谢,
最佳答案
尝试使用IP地址而不是远程主机名:
kkSocket = new Socket("192.168.0.1", 18090);
Windows网络通常使用WINS进行主机名解析,而不是使用DNS-大多数家庭网络甚至都没有DNS服务器。这允许Windows本身按名称查找远程服务(例如,共享),但是大多数应用程序仍需要适当的DNS基础结构才能正常工作。
或者,您可能需要编辑hosts文件,以将网络上任何主机的IP地址与其名称相关联。