这里新建一个端口扫描程序,TCP工作正常,但是我不知道如何去扫描UDP端口。说我想知道在这个局域网中的另一台主机上的UDP端口XXXX是否打开。这段代码是否会完成这项工作?如果没有,问题是什么?,如何实现UDP端口扫描?
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";
}
只是一个新手,还在学习。 谢谢!
谢谢,但我该如何捕获ICMP错误信息? – ralphxiaoz 2011-05-04 09:00:09
DatagramSocket#发送将抛出一个你可以捕获的PortUnreachableException。 – artbristol 2011-05-04 09:03:18
谢谢!真的帮助 – ralphxiaoz 2011-05-06 00:08:38