TCP/UDP端口扫描(多线程应用-仅处于理论状态)-java

1.说明

java多线程一般会用到共享数据,比如非常经典的卖票系统,可是起效果也仅仅是多个人操作,合成一个线程的效果而已,那可不可以,将一个工作分为多个人干了?

TCP端口及UDP端口,理论上有65535个,如果我们要扫描全部端口,会很慢,网上下载了一些,感觉只是扫描常用端口,并不是完全扫描,好吧,信任netstat -ano ?

它确实很快,可是远程扫描怎么办?我的网络水平也很一般,有时候有的端口开放给内网,却用其他设备阻挡了外网的,那又该怎么检查了?好吧,自己写写看。


import java.io.IOException;
import java.net.DatagramSocket;
import java.net.Socket;
import java.net.SocketException;

public class lzwCode implements Runnable
{  
 private static int ticket=65535;
 
 int xx,yy;
 public lzwCode(int x1,int y1)
 {
  xx=x1;
  yy=y1;
 }
    public static void main(String [] args)
    { int x=1,y=x+100;
     while(x<ticket)
     {
      if(y>ticket)
      { 
       y=ticket;
      }
      new Thread(new lzwCode( x, y),x+"").start();
      x=x+100;
      y=x+100-1;
      
      if(y==ticket)
       x=ticket;
     }
    } 
    public void run()
    { 
     for(int i=xx;i<yy;i++)
     {
      try {           
       new Socket("ip",i);
       System.out.println("TCP端口" + i);
      }
      catch (IOException e){ }
      
      try{
       new DatagramSocket(i).close();
      }
      catch(SocketException e)
   {
        System.out.println("UDP端口"+i);
   }
      
     }
     }
}

创建了无数个线程,不知道是否真的比单一线程的操作会快些,因为我的电脑真的很差,什么时候有个多核cpu给我,试试看啊。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值