Hola a todos, de antemano muchas gracias por su ayuda, bueno el cuento es, tengo un dispositivo GPS el cual puede hacer uso de dos protocolos por así llamarlos para enviar información al usuario uno es el SMS y el otro es GPRS, bueno las pruebas por SMS salen perfecto.
Cuando se configura el dispositivo por GPRS este hace uso de los protocolos TCP/IP o UDP para enviar la información, configure dicho bicho para que me enviara la información por UDP y cree un programa en Java para capturar el dato que viene por UDP.
He usado software para testear mi programa y los mensajes llegan bien, es decir los puedo leer claro, si mando “hola” a mi server llega “hola”, pero cuando coloco al GPS a enviarme los datagramas me llegan en unos caracteres ilegibles.
¿Cómo puedo corroborar si el datagrama viene cifrado?
¿En el código adjunto hay algo que me puede estar faltando?
Gracias señores.
Código adjunto:
Código:
import java.net.*;
import java.io.*;
import java.nio.*;
import java.lang.*;
public class ServidorUDP {
//Metodo principal
public static void main(String args [] ) {
// Sin argumentos
if (args.length != 0) {
System.err.println("Uso: java ReceptorUDP");
}//if (args.length != 0)
else try{
// Crea el Socket
DatagramSocket dasSocket = new DatagramSocket(5001);
System.err.println("Escuchando puerto " + dasSocket.getLocalPort());
String strMensaje = null;
int intLonMsg = 0, intIndex = 0;
while (true){
// Crea el espacio para los mensajes
byte [] bytCadena = new byte[256] ;
DatagramPacket dapMensaje = new DatagramPacket(bytCadena, bytCadena.length);
// Recibe y muestra el primer mensaje
dasSocket.receive(dapMensaje);
// Muestra el contenido del paquete
ByteArrayInputStream baiBin = new ByteArrayInputStream(dapMensaje.getData());
//Procesamos el mensajes
System.out.println ("------------------------------------- ") ;
System.out.println("Source : " + dapMensaje.getAddress() + " ");
System.out.println("Length : " + dapMensaje.getLength() + " ");
System.out.println("Offset : " + dapMensaje.getOffset() + " ");
System.out.println("Port : " + dapMensaje.getPort() + " ");
System.out.println("SocketAddress : " + dapMensaje.getSocketAddress() + " ");
byte[] data = dapMensaje.getData();
String s = new String(data, 0, data.length);
System.out.println(s);
//System.out.println("Data: " + new String(dapMensaje.getData(),1));
/* System.out.print("Data: ");
for(intIndex = 0; intIndex <= dapMensaje.getLength(); intIndex++){
int data = baiBin.read();
if(data == -1){
break;
}else{
System.out.print((char) data) ;
}//if(data == -1)
}//for(intIndex = 0; intIndex <= dapMensaje.getLength(); intIndex++)
*/
System.out.println ("\n------------EOF-------------------------------------- ") ;
}//while (true)
} catch(SocketException e) {
System.err.println("Socket: " + e.getMessage());
} catch(IOException e) {
System.err.println("E/S: " + e.getMessage()); }
}//public static void main(String args [] )
}//public class ServidorUDP