有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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)

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

谢谢:)


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    排队

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

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

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

    • 开始->;跑
    • 输入cmd并按enter键打开命令shell
    • 在命令shell中输入ipconfig,然后按enter键

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