udp端口扫描,java实现本地主机UDP端口扫描

KLQ 2020-08-10 09:46:40 java常见问答 6479

之前给大家介绍了一下udp端口,相信对于udp是什么?有什么作用?大家应该都很清楚了,那么接下来要接着给大家讲到的就是java本地主机UDP端口扫描实现的一些内容,感兴趣的小伙伴可以一起来了解一下。

大多数时候,我们都需要知道本地主机UDP端口的使用情况,这样的话,在对UDP端口进行分配的时候就不会有冲突,下面的这个例子,通过编程实现了对本地主机UDP端口的扫描实现。

为了可以避免Unix机器上需要root用户才可以将服务和小于1024端口绑定,这里的话,仅仅扫描了1024以上的端口,假如,为Unix上的root用户或者是在Windows、Mac 机器上运行这个例子的话,可以将端口扩展到1024以下的端口。

运行这个程序即获得在本机运行的UDP端口使用情况。

实现:

使用DatagramSocket类创建对象,而DatagramSocket类继承了Object类。

DatagramSocket类共有3个构造器,每个在不同情况下使用。

下面是这个例子使用的构造器:

构造器

这个构造器通过参数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编程之路可以有所帮助哦,更多java编程常见问题,欢迎多多关注奇Q工具网来进行了解哦。

推荐阅读:

udp端口查看,怎样测试udp端口是否打开?

tcp udp数据包长度限制是指?

udp协议和tcp协议是什么?要如何实现?