Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 4 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Ago 30, 2006 11:00 pm
Mensajes: 255
Ubicación: Cali - Colombia

Nota Publicado: Mar Jun 01, 2010 9:00 am 
Arriba  
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

_________________
ceduardo
[Linux USER #462524 ][Debian]
http://www.calinuxeros.org
IRC: irc.freenode.net Channels: (#debian-es – #debian)

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 1361
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Mar Jun 01, 2010 9:58 am 
Arriba  
Supongo que deberías buscar información útil sobre el protocolo que estás utilizando.
"A ciegas" tampoco puedes suponer que porque te llegan unos caracteres ilegibles es porque el mensaje esté codificado. Es lo más probable, pero no implica que sea lo correcto. Puede que te lo hayan mandado con un "byte order" diferente al tuyo, que se esté utilizando otra codificación de caracteres, que haya fallos en la transmisión...

Tampoco es que ganes mucho adivinando que el mensaje venga cifrado. Necesitarías una clave, y además saber el algoritmo de cifrado utilizado, cosa que no se puede saber a priori.

_________________
Descargue el gestor de mp3 "Music Manager" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Ago 30, 2006 11:00 pm
Mensajes: 255
Ubicación: Cali - Colombia

Nota Publicado: Mar Jun 01, 2010 10:58 am 
Arriba  
Hola akodo, la verdad he estado trabajando a ciegas, por que esto de el manejo sockets en Java para mi son nuevos, un dato que me has dado importate de revisar es sobre el "byte order", por que, tiene mucho sentido.

Voy a seguir analizando el caso y posteando el camino recorrido.

Gracias por el aporte.
Salu2.

_________________
ceduardo
[Linux USER #462524 ][Debian]
http://www.calinuxeros.org
IRC: irc.freenode.net Channels: (#debian-es – #debian)

 Perfil Email  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Sab Sep 11, 2010 1:24 pm
Mensajes: 1

Nota Publicado: Sab Sep 11, 2010 1:34 pm 
Arriba  
Hola eduardo, yo tambien tengo el mismo problema que el tuyo tengo un gps chino que envia informacion a un puerto UDP pero la informacion llega encriptada o un protocolo raro
hasta el momento pude encontrar que se debe user un dissector para decodificarlo entre otras cosas, otra que el protocolo puede ser NMEA por ser el mas usado en los GPS, existen tambien algunos proyectos que pueden ayudar a montar un servidor para recepcionar los datos en fin me gustaria poder comunicarnos para compartir informacion.

Saludos

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 4 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO