Java:使用socket时无法通过临时连接到其他计算机
我创造了一个简单的游戏,两台电脑连接在一起。我在同一台电脑上测试过,没问题。当我创建临时网络时(在Windows 7中)。一台计算机是服务器,它已成功创建:
ssock = new ServerSocket(PORT);
sock = ssock.accept();
一台计算机是客户端:
sock = new Socket("localhost", PORT);
当你跑到这条线的时候。我收到了这个错误:
java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at com.controller.MainController$GameObject.(MainController.java:78) at com.controller.MainController$3.run(MainController.java:180) at java.lang.Thread.run(Thread.java:662)
请帮我指出,这里出了什么问题
谢谢:)
# 1 楼答案
除了用所需的IP地址替换“localhost”之外,您还需要检查防火墙上是否打开了指向的端口
# 2 楼答案
排队
第一个参数“localhost”是要连接到的机器的主机名。“localhost”总是指当前机器。当服务器在另一台机器上运行时,您必须告诉套接字在哪里可以找到它
您需要将“localhost”替换为另一台机器的IP地址或主机名。如果不知道这些,请在服务器上执行以下步骤:
cmd
并按enter键打开命令shellipconfig
,然后按enter键现在,您将看到机器上所有网络适配器的配置信息,包括它们的IP地址