你好,我正在开发一个端口扫描程序,TCP协议已经能够正常工作,但是我不知道如何实现UDP端口扫描。比如说,我想要知道在这个局域网中另一台主机上的UDP端口XXXX是否开放。以下代码能够达到目的吗?如果不能,问题出在哪里?
protected String scanUDP(InetAddress IP, int port)
{
try{
byte [] bytes = new byte[128];
DatagramSocket ds = new DatagramSocket();
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, IP, port);
ds.setSoTimeout(1000);
ds.send(dp);
dp = new DatagramPacket(bytes, bytes.length);
ds.receive(dp);
ds.close();
}
catch(InterruptedIOException e){
return "CLOSED";
}
catch(IOException e){
return "CLOSED";
}
return "OPEN";
}
我是一个新手,还在学习中。谢谢!