Java套接字未连接到大多数站点

时间:2015-03-23 16:15:49

标签: java sockets ports network-scan

我正在编写一个程序,它只测试与远程机器上端口的连接,并检查连接是否已建立或被拒绝,几乎是一个端口扫描程序。虽然它似乎适用于localhost和一些网站,但由于某些原因它不适用于大多数IP地址,当我的几个同学遵循类似的方法并能够探测这些相同的网站时。有些网站,例如wikipedia.org,只能访问端口21,然后挂起。任何人都可以看到我的代码有任何明显问题。 Thansk提前。

for(int i = 1; i <= maxPort; i++)
    {
            boolean found = true;
            try
            {
                    String[] hostNameArray = hostName.split(".");
                    socket = new Socket(hostName, i);
                    System.out.println("Test");


                    socket.close();
            }
            catch(java.net.ConnectException ex)
            {
                    System.out.println("Error" + ex + "\t<"+i+">");
                    found = false;
            }
            catch(java.net.UnknownHostException ex)
            {
                    System.out.println("Unknown host");
                    System.exit(-1);
            }
            catch(IOException ex)
            {
                    System.out.println("IO Exception");
                    System.exit(-2);
            }
            if(found)
            {
                    ports.add(i);
            }
    }

google.com这样的地方只会在我尝试创建套接字时停止(即测试语句永远不会打印),而wikipedia.org只会在21之后挂起。再次感谢您的帮助。

0 个答案:

没有答案