Java游戏套接字网络路由器问题

时间:2016-06-16 13:36:23

标签: java sockets networking router

美好的一天, 我有一个java游戏,我想通过网络与朋友一起玩,我已经实现套接字并使用localhost作为地址在我的电脑上测试游戏,但是无法连接到我朋友的外部IP电脑,可能是因为我们都落后于路由器。 这是主机/客户端的代码:

客户端:

try {
    socket = new Socket(inputHostIp(), 5555);
} catch (IOException e) {
    e.printStackTrace();
}

服务器:

try {
    hostServer = new ServerSocket(5555);
} catch (IOException e1) {
    e1.printStackTrace();
}
listenForUserConnection();

while (true) {
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
    }

    Socket socket = null;
    try {
        socket = hostServer.accept();
    } catch (IOException e) {
        e.printStackTrace();
        continue; 
    }
    joined(socket);
}

我现在得到的例外是

java.net.ConnectException:连接超时:连接 在尝试初始化I / O时:

java.net.SocketException: Socket is not connected
java.net.Socket.getInputStream/java.net.Socket.getOutputStream

我已经设置了端口转发,所选端口号(5555)链接到我们两台机器上的内部IP。

我有什么选择让它发挥作用?

附录: 我们也尝试过使用Hamachi来创建一个虚拟局域网,但似乎存在一个问题 - 我们不能相互ping通,即使这样,它也会出现问题 -

隧道:     VPN域的分支设备已关闭 本地结果:     适配器配置:             无法获得适配器配置     流量测试:无法完成测试 同行结果:[160-056-951]     适配器配置:好的     流量测试:阻止入站流量,检查防火墙设置

我试过关闭防火墙,hamachi问题改为'无法获得适配器配置',但是没有结果。 但是,在我的电脑上,我有一个版本的Windows似乎没有正确显示防火墙设置,如果你认为它可能是一个问题,你能告诉我如何测试我的防火墙吗?

0 个答案:

没有答案