【发布时间】:2012-09-30 15:04:46
【问题描述】:
我创建了一个简单的游戏,将两台计算机连接在一起。我在同一台电脑上测试过,没问题。当我创建 ad-hoc 网络时(在 Windows 7 中)。一台计算机是一台服务器,它创建成功:
ssock = new ServerSocket(PORT);
sock = ssock.accept();
一台电脑是客户端:
sock = new Socket("localhost", PORT);
当运行到这一行时。我收到了这个错误:
java.net.ConnectException:连接被拒绝:连接在 java.net.PlainSocketImpl.socketConnect(Native Method) 在 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 在 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) 在 java.net.Socket.(Socket.java:375) 在 java.net.Socket.(Socket.java:189) 在 com.controller.MainController$GameObject.(MainController.java:78) 在 com.controller.MainController$3.run(MainController.java:180) 在 java.lang.Thread.run(Thread.java:662)
请帮我指出,这里有什么问题。
谢谢:)
【问题讨论】:
-
中间是否有防火墙(操作系统防火墙或网络防火墙)?服务器是否可达?
-
当您将服务器转移到另一台机器时,您用什么替换了客户端上的主机名“localhost”? (“localhost”表示“这台机器”,而不是“本地网络上的机器”)
-
@Philipp 我不太了解你。这是否意味着我们不应该使用
localhost而是其他名称? -
@SJuan76 如何知道服务器可达?但是,当我连接这两台计算机的 ad-hoc 时,我可以一起玩另一个游戏,这有关系吗?谢谢:)
-
是的,'localhost' 是 this 主机的名称。如果你想与另一个主机交谈,你必须使用它的名字,而不是你自己的。