当前位置: 源码素材网 » Java教程 » 详情页

Java本地主机UDP 端口扫描实现

  •   时间:2019-10-08
  • 概述:UDP 端口扫描

Java本地主机UDP 端口扫描实现,有时候我们需要知道本地主机UDP 端口的使用情况,这样在将UDP 端口分配给某一UDP 服务的时候就不会冲突。本例通过编程实现了对本地主机UDP 端口的扫描实现。为避免在Unix 机器上需要root 用户才能将服务与小于1024 端口绑定,本例仅扫描了1024以上的端口,如果为Unix 上的root 用户或者在Windows、Mac 机器上运行本例,可以将端口扩展到1024 以下的端口。运行此程序即获得在本机运行的UDP 端口使用情况。

实现方法:

使用 DatagramSocket 类创建对象,而DatagramSocket 类继承了Object 类。DatagramSocket类共有3 个构造器,每个在不同情况下使用。本例使用的构造器如下:

public DatagramSocket(int port) throws SocketException

此构造器通过参数port 建立一个在特定端口监听输入的数据包的socket。如果socket 不能创建,则抛出SocketException 异常。通常在端口已有服务或者权限不足的时候会抛出异常。程序代码:

1.编写useUDPPortScanner 类的基本框架,该类仅包括main()方法,在该方法中循环扫描端口,通过捕获异常知道已有哪些服务。

2.编写useUDPPortScanner 类,代码如下:

import java.net.*;
public class useUDPPortScanner
{
  	public static void main(String[] args)
  	{
  		//循环扫描
    		for (int port = 1024; port <= 65535; port++)
    		{
      			try
      			{
        			// 如果在端口上已有服务,就捕获异常。
        			//新建DatagramSocket对象
        			DatagramSocket server = new DatagramSocket(port);
        			//关闭服务
        			server.close();
      			}
      			catch (SocketException e)
      			{
        			System.out.println("在 " + port + "端口上已有服务。");
      			}
    		}
  	}
}

    相关内容:

    相关声明:

      若“Java本地主机UDP 端口扫描实现”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。