這裏新建一個端口掃描程序,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