0

我创建了一个简单的游戏,两台电脑连接在一起。我在同一台电脑上测试过,没问题。当我创建 ad-hoc 网络时(在 Windows 7 中)。一台计算机是一台服务器,它创建成功:

ssock = new ServerSocket(PORT);
sock = ssock.accept();

一台计算机是客户端:

sock = new Socket("localhost", PORT);

当跑到这条线。我收到了这个错误:

java.net.ConnectException:连接被拒绝:在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java: 213) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 在 java.net.Socket.connect(Socket.java:529) 在 java. net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at java.controller.MainController$GameObject.( MainController.java:78) 在 com.controller.MainController$3.run(MainController.java:180) 在 java.lang.Thread.run(Thread.java:662)

请帮我指出,这里有什么问题。

谢谢 :)

4

2 回答 2

1

在行

sock = new Socket("localhost", PORT); 

第一个参数“localhost”是您要连接的机器的主机名。“localhost”始终表示当前机器。当服务器在另一台机器上运行时,您必须告诉套接字在哪里找到它。

您需要将“localhost”替换为另一台机器的 IP 地址或主机名。如果您不知道这些,请在服务器计算机上执行以下步骤:

  • 开始 -> 运行
  • 回车cmd并按回车打开命令外壳
  • 进入ipconfig命令外壳并按回车

您现在将看到有关机器上所有网络适配器的配置信息,包括它们的 IP 地址。

于 2012-10-10T07:56:27.503 回答
0

除了用所需的 IP 地址替换“localhost”之外,您还可能需要检查是否在防火墙上打开了指向的端口。

于 2012-10-10T07:59:12.180 回答