我正在测试来自Oracle.com的Java socket读/写基本示例
如果我在同一台机器上同时运行服务器和客户端,它可以读/写。但当它是从其他PC读取时,它不起作用。
这就是它们通过同一集线器连接的方式。互联网->本地网络->集线器->PC1和PC2
PC1是一个运行KnockKnockServer.java的服务器。PC2是一个运行KnockKnockClient.java的客户端。
所有内容都与默认KnockKnockClient.java相同,但如下所示:
kkSocket = new Socket("PC1", 18090);但是我得到了“无法获取连接到:PC1的I/O”错误。
我在PC1的卡巴斯基程序和PC2的防火墙中打开了相同的端口。即使我在PC1中关闭了卡巴斯基和防火墙,它也会显示相同的错误。
有什么想法吗?
谢谢,
发布于 2012-01-14 05:30:16
尝试使用IP地址而不是远程主机名:
kkSocket = new Socket("192.168.0.1", 18090);Windows网络通常使用WINS进行主机名解析,而不是DNS -大多数家庭网络甚至没有DNS服务器。这允许Windows自己按名称查找远程服务(例如,共享),但大多数应用程序仍需要适当的DNS基础设施才能工作。
或者,您可能希望编辑hosts文件,以便将网络上任何主机的IP地址与其名称相关联。
https://stackoverflow.com/questions/8857293
复制相似问题