Como Receber dados via Socket de um rastreador

7 respostas
K

Boa tarde,
Eu comprei um rastreador Tk 102b, para fazer meu trabalho de TCC estou com muita dificuldade para conseguir captura os dados do rastreador no meu computador.

Eu utilizei o programa OpenGTS e esta comunicando com meu computador certinho recebendo as coordenadas
direto ex: ip 102.168.1.101 9000.

So que para eu fazer o meu TCC tenho que conseguir pegar essa informações que chega na porta (ex 102.168.1.101 9000) do computador, seria basicamente o mesmo procedimento que o OpenGTS faz, so que eu vou trata os dados de outra forma, ele apenas mostra na tela eu vou pegar eles e guarda em um banco de dados.

Ja tentei aqui utilizando o java com socket só que não esta dando certo.

Esse código eu consigo comunicar com como socket local enviando dados de um para o outro,
só que o rastreador esta configurado para enviar os dados para a porta 9000 também só que não imprime nada do rastreador
apenas o que e enviado pela classe servidor.

O Rastreador utiliza GPRS ele esta enviando os dados para um IP fixo, e os Firewall esta desativado, como informei esta recebendo no sistema OpenGTS mais no código que fiz não esta.

package br.com.tccrastreador;

import java.io.ObjectInputStream;
import java.net.Socket;
import java.util.Date;
import javax.swing.JOptionPane;

/**
 *
 * @author www
 */
public class ClienteTCPBasico {

    public static void main(String[] args) {

        try {
 
                Socket cliente = new Socket("192.168.1.101", 9000);

                ObjectInputStream entrada = new ObjectInputStream(cliente.getInputStream());

                //Date data_atual = (Date)entrada.readObject();
//      JOptionPane.showMessageDialog(null,"Data recebida do servidor:" + retorno.toString());

                //Capturando o entrada e colocando na variavel retorno
                String retorno = entrada.readUTF();
                //mostrando o texto de retorno
                System.out.println("-- " + retorno.toString());

                entrada.close();

            System.out.println("Conexão encerrada");

        } catch (Exception e) {

            System.out.println("Erro: " + e.getMessage());

        }

    }
}

Servidor que envia a MSG

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.tccrastreador;

import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

/**
 *
 * @author www
 */
public class ServidorTCPBasico {

  public static void main(String[] args) {

    try {

      // Instancia o ServerSocket ouvindo a porta 9000

      ServerSocket servidor = new ServerSocket(9000);

      System.out.println("Servidor ouvindo a porta 9000");

      while(true) {

        // o método accept() bloqueia a execução até que

        // o servidor receba um pedido de conexão

        Socket cliente = servidor.accept();

        System.out.println("Cliente conectado: " + cliente.getInetAddress().getHostAddress());

        ObjectOutputStream saida = new ObjectOutputStream(cliente.getOutputStream());

        saida.flush();

//        saida.writeObject(new Date());
        saida.writeUTF("TEXTO TESTE PARA TRANSFERIR...");
        saida.close();

        cliente.close();

      }  

    }   

    catch(Exception e) {

       System.out.println("Erro: " + e.getMessage());

    }

    finally {
    }  

  }     

}

Agradeço desde já.

7 Respostas

E

O seu rastreador provavelmente não foi programado em Java e portanto não está usando um ObjectOutputStream.
ObjectInputStream só consegue ler dados que foram gerados através de um ObjectOutputStream.

Não sei o que está errado no seu programa, mas com certeza você não deve usar um ObjectInputStream. Leia a documentação desse rastreador com mais cuidado.

L

É possível é… tem que ver melhor como fazer, pois existe este software que trabalha com esse modelo de rastreador: http://sourceforge.net/projects/traccar/

Segundo o site, o programa é feito em Java. Então tem algum jeito de se comunicar com esse modelo… e o melhor, lá tem o código fonte
http://www.traccar.org/

Já pode seguir com suas pesquisas

S

Cara normalmente existe um protocolo que o hardware envia as coordendas, você tem que saber como é esse protocolo para você poder capturar os dados.

K

Conseguir receber os dados utilizando o Node.js
agora e a luta para entender como funciona ele, e gravar no banco de dados.

alguem ai trabalha com o Node.js ?

F

Já conseguiu concluir seu projeto de TCC?

V

boa tarde, vc conseguiu fazer progresso no seu projeto

F

No meu estou recebendo do tk102 desta forma (027043011394BR00160419A2255.5305S04305.6160W000.42000340.000000000000L00000000)

so que o certo não seria assim

imei:359710049095095,tracker,151006012336,F,172337.000,A,5105.9792,N,11404.959

Alguem sabe oque é isso?

Criado 8 de fevereiro de 2013
Ultima resposta 21 de abr. de 2016
Respostas 7
Participantes 7