场景:192.168.0.1 机器在端口81上打开了一个程序。
      192.168.0.2 使用java程序如何知道192.168.0.1机器是否已经打开81端口。

解决方案 »

  1.   

    用socket连192.168.0.1
    catch IOException出现异常说明端口没打开。。开了防火墙的情况除外。 :)
      

  2.   

    强烈关注中可以用tcp的3次握手来实现吧可以借鉴扫描的原理,发一个数据包.或者,调用外部程序试试..
      

  3.   

    用socket循环1-65535可以查到某台机器的所有打开端口.
    不知道对不对.
      

  4.   

    用socket连192.168.0.1
    catch IOException应该可行!
      

  5.   

    要是出现别有情况的话出现IOException呢???
      

  6.   

    你就单一个用try去捕捉socket连接嘛!
      

  7.   

    扫描给定主机的TCP端口:
    import java.net.*;
    import java.io.*;public class usePortScanner 
    {
       public static void main(String[] args) 
       {    
         String host = "localhost";
         if (args.length > 0) 
         {
           host = args[0];
         }
         //扫描主机端口
         for (int i = 1; i < 1024; i++) 
         {
           try 
           {
           //建立Socket
             Socket s = new Socket(host, i);
             //输出端口信息
             System.out.println("There is a server on port " + i + " of " + host);
           }
           catch (UnknownHostException e) 
           {
             System.err.println(e);
             break;
           }
           catch (IOException e) 
           {
           // must not be a server on this port
           }
         } // end for  
       }  // end main  
    }  // end usePortScanner
      

  8.   

    Proto  Local Address          Foreign Address        State
     TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
     TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
     TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
     TCP    0.0.0.0:6789           0.0.0.0:0              LISTENING
     TCP    127.0.0.1:1050         0.0.0.0:0              LISTENING
     TCP    127.0.0.1:1080         0.0.0.0:0              LISTENING
     TCP    192.168.20.111:139     0.0.0.0:0              LISTENING
     TCP    192.168.20.111:1100    192.168.17.100:8889    ESTABLISHED
     TCP    192.168.20.111:1164    192.168.17.251:1533    ESTABLISHED
     TCP    192.168.20.111:1228    192.168.17.100:8889    ESTABLISHED
     TCP    192.168.20.111:1401    192.168.17.137:3389    ESTABLISHED
     TCP    192.168.20.111:2193    192.168.17.150:445     TIME_WAIT
     TCP    192.168.20.111:2198    192.168.17.100:8889    ESTABLISHED
     TCP    192.168.20.111:3314    192.168.17.201:1521    ESTABLISHED
     TCP    192.168.20.111:4643    192.168.30.250:52514   ESTABLISHED
     TCP    192.168.20.111:4645    192.168.30.250:51819   ESTABLISHED
     UDP    0.0.0.0:161            *:*
     UDP    0.0.0.0:162            *:*
     UDP    0.0.0.0:445            *:*
     UDP    0.0.0.0:500            *:*
     UDP    0.0.0.0:1025           *:*
     UDP    0.0.0.0:1026           *:*
     UDP    0.0.0.0:1038           *:*
     UDP    0.0.0.0:1774           *:*
     UDP    0.0.0.0:1855           *:*
     UDP    0.0.0.0:2197           *:*
     UDP    0.0.0.0:3915           *:*
     UDP    0.0.0.0:4500           *:*
     UDP    0.0.0.0:4598           *:*
     UDP    0.0.0.0:4642           *:*
     UDP    0.0.0.0:6000           *:*
     UDP    0.0.0.0:6001           *:*
     UDP    0.0.0.0:6002           *:*
     UDP    0.0.0.0:6003           *:*
     UDP    0.0.0.0:6004           *:*
     UDP    0.0.0.0:6005           *:*
     UDP    0.0.0.0:6006           *:*
     UDP    0.0.0.0:6007           *:*
     UDP    0.0.0.0:6008           *:*
     UDP    0.0.0.0:6009           *:*
     UDP    0.0.0.0:6010           *:*
     UDP    0.0.0.0:6011           *:*
     UDP    0.0.0.0:6012           *:*
     UDP    0.0.0.0:6013           *:*
     UDP    0.0.0.0:6014           *:*
     UDP    0.0.0.0:6015           *:*
     UDP    0.0.0.0:6016           *:*
     UDP    0.0.0.0:6017           *:*
     UDP    0.0.0.0:11113          *:*
     UDP    127.0.0.1:123          *:*
     UDP    127.0.0.1:1027         *:*
     UDP    127.0.0.1:1043         *:*
     UDP    127.0.0.1:1078         *:*
     UDP    127.0.0.1:1088         *:*
     UDP    127.0.0.1:1245         *:*
     UDP    127.0.0.1:1317         *:*
     UDP    127.0.0.1:1419         *:*
     UDP    127.0.0.1:1900         *:*
     UDP    127.0.0.1:4985         *:*
     UDP    192.168.20.111:123     *:*
     UDP    192.168.20.111:137     *:*
     UDP    192.168.20.111:138     *:*
     UDP    192.168.20.111:1900    *:*
    这是我本机显示的端口监听状态,我现在如果想测试UDP的161端口,不知道怎么做?当协议是TCP的时候我当然可以用socket,但是现在我想测试的是UDP协议的端口。
      

  9.   

    就用socket来链接就可以测试啊
      

  10.   

    udp端口状态的扫描,用java是做不到的,可以调用外部接口,构造一个包发过去,如果有返回,说明是关闭的,没返回说明是开放的,所以在网络不好的情况下,准确率很低
      

  11.   

    java.net.Datagram***Thinking in Java里面好像看到过例子