nuevo aquí, estoy trabajando en un programa para escanear puertos, TCP funciona bien, pero no sé cómo escanear los puertos UDP. Digamos que quiero saber si el puerto UDP XXXX en otro host en esta LAN está abierto. ¿Este código hará el trabajo? si no, ¿cuál es el problema?en Java, ¿cómo lograr escanear puertos 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";
}
just a newbie, aún aprendizaje. gracias!
gracias, pero ¿cómo puedo capturar ese mensaje de error ICMP? – ralphxiaoz
DatagramSocket # send arrojaría una PortUnreachableException que puede atrapar. – artbristol
gracias! realmente me ayudó – ralphxiaoz