不在同一IP范围内时无法连接Socket。 (子网)

时间:2012-11-19 13:37:48

标签: java sockets connection subnet

使用ip 145.74.217.109在计算机A上运行ServerSocket时 然后尝试使用机器B与ip 145.74.219.103连接到机器A我无法连接。 但是当使用机器C和ip 145.74.217.180时,它可以工作。

我不确定这是否可以在代码或其网络设置中解决。如果是网络问题还有另一种解决这个问题的方法,还是我需要从套接字转移到......?

机器A:

public void run() {
        try {
            sock = new ServerSocket(Constants.PORT);
            for (;;) {
                Socket newsock = sock.accept();

                System.out.println("Accepting new player: ");

                new PaintballPlayer(newsock);
            }
        } catch (Exception e) {
            System.out.println("IO error " + e);
        }
        System.out.println("End!");

        try {
            sock.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

机器B,C:

socket = new Socket(ip, Constants.PORT);

1 个答案:

答案 0 :(得分:0)

如果您查看IP us服务器的IP 145.74.217.109 IP 145.74.217.180能够连接而145.74.219.103无法连接则意味着子网145.74.219.X具有无法访问145.74.217.X,这就是无法连接的原因。是网络设置问你网络管理员。使两台机器具有相同的子网掩码