Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java can';不在同一IP范围内时,请不要连接插座。(子网)_Java_Sockets_Connection_Subnet - Fatal编程技术网

Java can';不在同一IP范围内时,请不要连接插座。(子网)

Java can';不在同一IP范围内时,请不要连接插座。(子网),java,sockets,connection,subnet,Java,Sockets,Connection,Subnet,在ip为145.74.217.109的机器上运行ServerSocket时 然后尝试使用ip为145.74.219.103的机器B连接到机器A,我无法连接。 但当使用ip为145.74.217.180的机器C时,它可以工作 我不确定这是否可以在代码中解决,或者只是网络设置。如果是网络问题,是否有其他方法来解决此问题,或者我是否需要从套接字转到 机器A: public void run() { try { sock = new ServerSocket(Co

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

我不确定这是否可以在代码中解决,或者只是网络设置。如果是网络问题,是否有其他方法来解决此问题,或者我是否需要从套接字转到

机器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);

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

好的,这就是我认为没有办法解决的问题。谢谢。@zaffargachal如何使用套接字连接不同子网上的两台机器?我可以ping这些机器,但插座不工作。@DeepSidhu1313请确保端口是打开的,并且可以相互访问。请尝试使用telnet命令检查端口是否已打开并可从该端口访问machine@zaffargachal我能够ping和ssh到这些机器,但当我尝试使用java套接字时,它会给出超时异常。可能是因为不同的子网!我的局域网上的Bcz one IP属于B类,我的IP属于C类范围。我说得对吗?