我是用笨办法尝试去连接它如果连接成功肯定就是被占用着

解决方案 »

  1.   

    连接成功怎么会被占用着呢,应该连接不成功,抛出异常才说明被占用着啊,如果连接成功那就可以用了,不是嘛。
      

  2.   

    正因为连接成功了,说明已经有程序在使用此端口啊,不然你能连接成功吗?(在你的程序没有绑定到此端口之前)
      

  3.   

    循环连接端口如果能连接上则说明本端口开放,如果抛出异常则说明没有开放!
      

  4.   

    有没有更好的方法啊,我觉得这样做比较累啊,抛出异常总让人感觉和难受,要等好久,累。
      

  5.   

    办法应该有。但要找到更累。
      

  6.   

    我想以下方法可能会更快,但不知道怎么实现它。==================高级TCP扫描技术 最基本的利用TCP扫描就是使用connect(),这个很容易实现,如果目标主机能够connect,就说明一个相应的端口打开。不过,这也是最原始和最先被防护工具拒绝的一种。 
    在高级的TCP扫描技术中主要利用TCP连接的三次握手特性来进行,也就是所谓的半开扫描。这些办法可以绕过一些防火墙,而得到防火墙后面的主机信息。当然,是在不被欺骗的情况下的。下面这些方法还有一个好处就是比较难于被记录,有的办法即使在用netstat命令上也根本显示不出来。 SYN 
    向远端主机某端口发送一个只有SYN标志位的TCP数据报,如果主机反馈一个SYN || ACK数据包,那么,这个主机正在监听该端口,如果反馈的是RST数据包,说明,主机没有监听该端口。在X-Scanner 上就有SYN的选择项。 ACK 
    发送一个只有ACK标志的TCP数据报给主机,如果主机反馈一个TCP RST数据报来,那么这个主机是存在的。 FIN 
    对某端口发送一个TCP FIN数据报给远端主机。如果主机没有任何反馈,那么这个主机是存在的,而且正在监听这个端口;主机反馈一个TCP RST回来,那么说明该主机是存在的,但是没有监听这个端口。 NULL 
    即发送一个没有任何标志位的TCP包,根据RFC793,如果目标主机的相应端口是关闭的话,应该发送回一个RST数据包。 FIN+URG+PUSH 
    向目标主机发送一个Fin、URG和PUSH分组,根据RFC793,如果目标主机的相应端口是关闭的,那么应该返回一个RST标志。
      

  7.   

    好技术,激人奋进啊,好好研究一下嘛,找出方法来。
      

  8.   

    是啊。你快研究吧。有成果了告诉我 :)