首页 文章

Java:使用socket时无法通过ad-hoc连接到其他计算机

提问于
浏览
0

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

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

一台计算机是客户端:

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

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

java.net.ConnectException:连接被拒绝:连接java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)的java.net.PlainSocketImpl.socketConnect(本地方法)java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java) :213)java.net.SocksSocketImpl.connect(PlainSocketImpl.java:200)java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)java.net.Socket.connect(Socket.java:529)java java.net.Socket . (Socket.java:375)的.net.Socket.connect(Socket.java:478)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)

请帮我指出,这里有什么不妥 .

谢谢 :)

2 回答

  • 0

    在线

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

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

    您需要将“localhost”替换为其他计算机的IP地址或主机名 . 如果您不知道这些,请在服务器计算机上按照下列步骤操作:

    • 开始 - >运行

    • 输入 cmd 并按Enter键打开命令shell

    • 在命令shell中输入 ipconfig 并按Enter键

    您现在将看到有关计算机上所有网络适配器的配置信息,包括其IP地址 .

  • 1

    除了用所需的IP地址替换“localhost”之外,你还要重新检查以确定防火墙上是否有指向端口 .

相关问题