serversocket #2

  • Follow


Bom dia!=20
to come=E7ando com java mas no entanto j=E1 tenho uma certa experi=EAncia c=
om php. to tentando criar um serversocket com java para receber dados de um=
 gps modelo tk102 , fiz a classe abaixo que por sinal esta "funcionando" eu=
 emulei o modelo dele no meu smart e ele fez o que tinha que fazer leu e im=
primiu em tela os logs, entretanto quando eu coloco o gps pra conectar ele =
nao conect. sei que ele esta funcionando pois em um forum na net um cara me=
 forneceu o ip do server dele e nele conectou. alguem pode me ajudar ?



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Track {

    public static void main(String[] args) {

        //Declaro o ServerSocket =20
        ServerSocket serv =3D null;

        //Declaro o Socket de comunica=E7=E3o =20
        Socket s =3D null;

        //Declaro o leitor para a entrada de dados =20
        BufferedReader entrada =3D null;

        while (true) {

            try {

                //Cria o ServerSocket na porta 11000 se estiver dispon=EDve=
l =20
                serv =3D new ServerSocket(11000);

                //Aguarda uma conex=E3o na porta especificada e cria retorn=
a o socket que ir=E1 comunicar com o cliente =20
                s =3D serv.accept();

 //Cria um BufferedReader para o canal da stream de entrada de dados do soc=
ket s =20
                entrada =3D new BufferedReader(new InputStreamReader(s.getI=
nputStream()));

                //Aguarda por algum dado e imprime a linha recebida quando =
recebe =20
                System.out.println(entrada.readLine());

                //trata poss=EDveis excess=F5es de input/output. Note que a=
s excess=F5es s=E3o as mesmas utilizadas para as classes de java.io   =20
            } catch (IOException e) {

                //Imprime uma notifica=E7=E3o na sa=EDda padr=E3o caso haja=
 algo errado. =20
                System.out.println("Algum problema ocorreu para criar ou re=
ceber o socket.");

            } finally {

                try {

                    //Encerro o socket de comunica=E7=E3o =20
                    s.close();

                    //Encerro o ServerSocket =20
                    serv.close();

                } catch (IOException e) {
                }
            }
        }



    }
}
0
Reply lucyann.lenon (4) 7/14/2012 12:41:27 PM

On Sat, 14 Jul 2012 05:41:27 -0700 (PDT), Lucyann Lenon Emerick De Assis
wrote:

> Bom dia! 
> to come�ando com java mas no entanto j� tenho uma certa experi�ncia com php. to tentando criar um serversocket com java para receber dados de um gps modelo tk102 , fiz a classe abaixo que por sinal esta "funcionando" eu emulei o modelo dele no meu smart e ele fez o que tinha que fazer leu e imprimiu em tela os logs, entretanto quando eu coloco o gps pra conectar ele nao conect. sei que ele esta funcionando pois em um forum na net um cara me forneceu o ip do server dele e nele conectou. alguem pode me ajudar ?

Hallo!

Das ist ein sehr interessantes Schreiben, was Sie da veroeffentlichen.
Leider spreche ich Ihre Sprache nicht, genau so, wie Sie vermutlich meine
nicht sprechen. Daher ist es sinnvoll, Schreiben in einer der Gruppe
angepassten Sprache zu veroeffentlichen.

Liebe Gruesse,
		Joerg

-- 
Ich lese meine Emails nicht, replies to Email bleiben also leider
ungelesen.
0
Reply joergmmeier (137) 7/14/2012 2:40:40 PM


translating
Good morning!
to starting with java but Nevertheless I have some experience with php. Try=
ing to create a ServerSocket with java to get data from the GPS model TK102=
, did the class below That by the way this "working" I emulei the model of =
it on my smart and he did what he HAD to read on screen and printed logs , =
However when i put the gps to connect it does not conect. I know he is work=
ing as a forum on the net a guy Gave me the ip of the server and connected =
it hin. Can someone help me?
Em s=E1bado, 14 de julho de 2012 09h41min27s UTC-3, Lucyann Lenon Emerick D=
e Assis  escreveu:
> Bom dia!=20
> to come=E7ando com java mas no entanto j=E1 tenho uma certa experi=EAncia=
 com php. to tentando criar um serversocket com java para receber dados de =
um gps modelo tk102 , fiz a classe abaixo que por sinal esta "funciona=
ndo" eu emulei o modelo dele no meu smart e ele fez o que tinha que fa=
zer leu e imprimiu em tela os logs, entretanto quando eu coloco o gps pra c=
onectar ele nao conect. sei que ele esta funcionando pois em um forum na ne=
t um cara me forneceu o ip do server dele e nele conectou. alguem pode me a=
judar ?
>=20
>=20
>=20
> import java.io.BufferedReader;
> import java.io.IOException;
> import java.io.InputStreamReader;
> import java.net.ServerSocket;
> import java.net.Socket;
>=20
> public class Track {
>=20
>     public static void main(String[] args) {
>=20
>         //Declaro o ServerSocket =20
>         ServerSocket serv =3D null;
>=20
>         //Declaro o Socket de comunica=E7=E3o =20
>         Socket s =3D null;
>=20
>         //Declaro o leitor para a entrada de dados =20
>         BufferedReader entrada =3D null;
>=20
>         while (true) {
>=20
>             try {
>=20
>                 //Cria o ServerSocket na porta 11000 se estiver dispon=ED=
vel =20
>                 serv =3D new ServerSocket(11000);
>=20
>                 //Aguarda uma conex=E3o na porta especificada e cria reto=
rna o socket que ir=E1 comunicar com o cliente =20
>                 s =3D serv.accept();
>=20
>  //Cria um BufferedReader para o canal da stream de entrada de dados do s=
ocket s =20
>                 entrada =3D new BufferedReader(new InputStreamReader(s.ge=
tInputStream()));
>=20
>                 //Aguarda por algum dado e imprime a linha recebida quand=
o recebe =20
>                 System.out.println(entrada.readLine());
>=20
>                 //trata poss=EDveis excess=F5es de input/output. Note que=
 as excess=F5es s=E3o as mesmas utilizadas para as classes de java.io   =20
>             } catch (IOException e) {
>=20
>                 //Imprime uma notifica=E7=E3o na sa=EDda padr=E3o caso ha=
ja algo errado. =20
>                 System.out.println("Algum problema ocorreu para cria=
r ou receber o socket.");
>=20
>             } finally {
>=20
>                 try {
>=20
>                     //Encerro o socket de comunica=E7=E3o =20
>                     s.close();
>=20
>                     //Encerro o ServerSocket =20
>                     serv.close();
>=20
>                 } catch (IOException e) {
>                 }
>             }
>         }
>=20
>=20
>=20
>     }
> }
0
Reply lucyann.lenon (4) 7/14/2012 2:56:35 PM

On 7/14/2012 7:56 AM, Lucyann Lenon Emerick De Assis wrote:
> translating
> Good morning!
> to starting with java but Nevertheless I have some experience with php. Trying to create a ServerSocket with java to get data from the GPS model TK102, did the class below That by the way this "working" I emulei the model of it on my smart and he did what he HAD to read on screen and printed logs , However when i put the gps to connect it does not conect. I know he is working as a forum on the net a guy Gave me the ip of the server and connected it hin. Can someone help me?
> Em s�bado, 14 de julho de 2012 09h41min27s UTC-3, Lucyann Lenon Emerick De Assis  escreveu:
>> Bom dia!
>> to come�ando com java mas no entanto j� tenho uma certa experi�ncia com php. to tentando criar um serversocket com java para receber dados de um gps modelo tk102 , fiz a classe abaixo que por sinal esta "funcionando" eu emulei o modelo dele no meu smart e ele fez o que tinha que fazer leu e imprimiu em tela os logs, entretanto quando eu coloco o gps pra conectar ele nao conect. sei que ele esta funcionando pois em um forum na net um cara me forneceu o ip do server dele e nele conectou. alguem pode me ajudar ?
>>
>>
>>
>> import java.io.BufferedReader;
>> import java.io.IOException;
>> import java.io.InputStreamReader;
>> import java.net.ServerSocket;
>> import java.net.Socket;
>>
>> public class Track {
>>
>>      public static void main(String[] args) {
>>
>>          //Declaro o ServerSocket
>>          ServerSocket serv = null;
>>
>>          //Declaro o Socket de comunica��o
>>          Socket s = null;
>>
>>          //Declaro o leitor para a entrada de dados
>>          BufferedReader entrada = null;
>>
>>          while (true) {
>>
>>              try {
>>
>>                  //Cria o ServerSocket na porta 11000 se estiver dispon�vel
>>                  serv = new ServerSocket(11000);
>>
>>                  //Aguarda uma conex�o na porta especificada e cria retorna o socket que ir� comunicar com o cliente
>>                  s = serv.accept();
>>
>>   //Cria um BufferedReader para o canal da stream de entrada de dados do socket s
>>                  entrada = new BufferedReader(new InputStreamReader(s.getInputStream()));
>>
>>                  //Aguarda por algum dado e imprime a linha recebida quando recebe
>>                  System.out.println(entrada.readLine());
>>
>>                  //trata poss�veis excess�es de input/output. Note que as excess�es s�o as mesmas utilizadas para as classes de java.io
>>              } catch (IOException e) {
>>
>>                  //Imprime uma notifica��o na sa�da padr�o caso haja algo errado.
>>                  System.out.println("Algum problema ocorreu para criar ou receber o socket.");
>>
>>              } finally {
>>
>>                  try {
>>
>>                      //Encerro o socket de comunica��o
>>                      s.close();
>>
>>                      //Encerro o ServerSocket
>>                      serv.close();
>>
>>                  } catch (IOException e) {
>>                  }
>>              }
>>          }
>>
>>
>>
>>      }
>> }

A ServerSocket is used when you want to be the server.  A Socket is used 
when you want to connect to a server.  Is the GPS running a server?

0
Reply nospam8071 (916) 7/14/2012 5:23:52 PM

Joerg Meier wrote:
> Lucyann Lenon Emerick De Assis wrote:
>
>> Bom dia!
>> to começando com java mas no entanto já tenho uma certa experiência com php. to tentando criar um serversocket com java para receber dados de um gps modelo tk102 , fiz a classe abaixo que por sinal esta "funcionando" eu emulei o modelo dele no meu smart e ele fez o que tinha que fazer leu e imprimiu em tela os logs, entretanto quando eu coloco o gps pra conectar ele nao conect. sei que ele esta funcionando pois em um forum na net um cara me forneceu o ip do server dele e nele conectou. alguem pode me ajudar ?
>
> Hallo!
>
> Das ist ein sehr interessantes Schreiben, was Sie da veroeffentlichen.
> Leider spreche ich Ihre Sprache nicht, genau so, wie Sie vermutlich meine
> nicht sprechen. Daher ist es sinnvoll, Schreiben in einer der Gruppe
> angepassten Sprache zu veroeffentlichen.

Really, Joerg? You couldn't pipe that through Google Translate

http://translate.google.com
?

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg


0
Reply noone7 (3512) 7/14/2012 8:04:33 PM

On 07/14/2012 07:56 AM, Lucyann Lenon Emerick De Assis wrote:
> Trying to create a ServerSocket with java

It's spelled "Java", not "java".

> to get data from the GPS model TK102, did the class below
> That by the way this "working" I emulei the model of it on my smart
> and he did what he HAD to read on screen and printed logs , However
> when i put the gps to connect it does not conect. I know he is working

Actually, the code you show is riddled with bugs and potential bugs.

I don't know what you mean by "working", but it isn't what I mean.

> as a forum on the net a guy Gave me the ip of the server and connected it hin.

Gave you the IP address of what server? How does another server demonstrate 
the correctness of your code?

>> import java.io.BufferedReader;
>> import java.io.IOException;
>> import java.io.InputStreamReader;
>> import java.net.ServerSocket;
>> import java.net.Socket;
>>
>> public class Track {
>>
>>      public static void main(String[] args) {
>>
>>          //Declaro o ServerSocket
>>          ServerSocket serv = null;
>>
>>          //Declaro o Socket de comunicação
>>          Socket s = null;
>>
>>          //Declaro o leitor para a entrada de dados
>>          BufferedReader entrada = null;
>>
>>          while (true) {
>>
>>              try {
>>
>>                  //Cria o ServerSocket na porta 11000 se estiver disponível
>>                  serv = new ServerSocket(11000);
>>
>>                  //Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
>>                  s = serv.accept();
>>
>>   //Cria um BufferedReader para o canal da stream de entrada de dados do socket s
>>                  entrada = new BufferedReader(new InputStreamReader(s.getInputStream()));
>>
>>                  //Aguarda por algum dado e imprime a linha recebida quando recebe
>>                  System.out.println(entrada.readLine());
>>
>>                  //trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de java.io
>>              } catch (IOException e) {
>>
>>                  //Imprime uma notificação na saída padrão caso haja algo errado.
>>                  System.out.println("Algum problema ocorreu para criar ou receber o socket.");
>>
>>              } finally {
>>
>>                  try {
>>
>>                      //Encerro o socket de comunicação
>>                      s.close();
>>
>>                      //Encerro o ServerSocket
>>                      serv.close();
>>
>>                  } catch (IOException e) {
>>                  }
>>              }
>>          }
>>      }
>> }

First, thank you for providing such a complete example. Not everyone does. 
Those folks should take heed of

http://sscce.org/

You do tend to comment excessively, making note of things the code itself 
already documents. For example:

         //Declaro o ServerSocket
         ServerSocket serv = null;

Well, duh! Comments should be helpful, not silly. They should express what the 
code does not already make crystal clear.

I find the style of many consecutive blank lines at random points in the 
source to be disconcerting at best. What is it intended to communicate?

Also, your variable names are too terse. 's' and 'serv' are not as good 
variable names as 'socket' and 'serverSocket'.

         serverSocket = new ServerSocket(11000);

The value '11000' should be declared as a constant variable member, not 
embedded deep in the code like this, an antipattern called "magic values".

         try
         {
           s.close();
           serv.close();
         }
         catch (IOException e)
         {
         }

Don't ever ignore exceptions like that! At an absolute minimum you must log them.

Note that if 's.close();' throws an exception, 'serv.close();' will not 
execute. There's room for a bug there, in theory. (In practice I've never 
heard of such a 'close()' call failing, but it could, I suppose.)

Furthermore, you coded these resource variables in such a way as to risk a 
'NullPointerException' ("NPE"). This is a common consequence of initializing 
resource variables to 'null' and ignoring the concomitant responsibility to 
check for 'null' before calling methods on them. That's bad coding, for sure.

I find it safer to declare the variables 'final' and not initialize them to 
'null' but to the desired resource reference in a separate 'try...catch' 
block. That way you don't have to check for 'null' when you 'close()' them. 
Doing what you did is begging for bugs.

You initialize the server socket every time through the loop. That is not 
normal. You shouldn't create a new server socket every time you want to make a 
connection; you should reuse the server socket and get a new regular socket 
for each connection.

You should limit the scope of 'entrada' to the block that uses it. Declaring 
variables with too wide a scope is an invitation for bugs, and an impediment 
to the garbage collector.

I provide a rewrite taking these hints into account. As an exercise, you 
should convert all the static methods except 'main()' into instance methods. I 
gave you a head start.

The code compiles but I haven't run it.

Question: How does the client know to connect to this server?
Question: How will the client connect to this server?
Question: Please show us the client code.

/* Track
  * $RCSfile$
  */
package eegee;

/**
  * Track.
  */
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.Logger;

public class Track
{
   static final Logger logger = Logger.getLogger(Track.class);
   static final int PORT = 11000;
   static final int BAD_EXIT = -1;

   static final String BAD_SERVER_SOCKET = "Unable to establish ServerSocket";
   static final String BAD_CONNECT =
       "Algum problema ocorreu para criar ou receber o socket.";
   static final String BAD_GETSTREAM = "Unable to open InputStream";
   static final String BAD_READ = "Bad read from Socket";
   static final String BAD_CLOSE = "Failure in close() call";

   /**
    * Run the Track server.
    *
    * @param args String [] of command-line arguments.
    */
   public static void main(String[] args)
   {
     final ServerSocket serverSocket;
     try
     {
       serverSocket = new ServerSocket(PORT);
     }
     catch (IOException exc)
     {
       logger.error(BAD_SERVER_SOCKET, exc);
       System.exit(BAD_EXIT);
       return; // satisfy compiler that serverSocket was initialized
     }
     assert serverSocket != null;

     try
     {
       serveConnections(serverSocket);
     }
     finally
     {
       close(serverSocket);
     }
   }

   private static void serveConnections(ServerSocket serverSocket)
   {
     while (true)
     {
       final Socket connectionSocket;
       try
       {
         connectionSocket = serverSocket.accept();
       }
       catch (IOException exc)
       {
         logger.error(BAD_CONNECT, exc);
         return;
       }
       assert connectionSocket != null;

       try
       {
         handleClient(connectionSocket);
       }
       finally
       {
         close(connectionSocket);
       }
     }
   }

   private static void handleClient(Socket connectionSocket)
   {
     final BufferedReader entrada;
     try
     {
       entrada = new BufferedReader(new InputStreamReader(
           connectionSocket.getInputStream()));
     }
     catch (IOException exc)
     {
       logger.error(BAD_GETSTREAM, exc);
       return;
     }
     assert entrada != null;

     try
     {
       String request = entrada.readLine();
       handleRequest(request);
     }
     catch (IOException exd)
     {
       logger.error(BAD_READ, exd);
     }
     finally
     {
       close(entrada);
     }
   }

   private static void handleRequest(String request)
   {
     System.out.println(request);
   }

   static void close(Closeable closeable)
   {
     try
     {
       closeable.close();
     }
     catch (IOException exc)
     {
       logger.error(BAD_CLOSE, exc);
     }
   }

   static void close(Socket closeable)
   {
     try
     {
       closeable.close();
     }
     catch (IOException exc)
     {
       logger.error(BAD_CLOSE, exc);
     }
   }

   private final int port;

   /**
    * Instantiate with the default server port.
    */
   public Track()
   {
     this(PORT);
   }

   /**
    * Instantiate with the specified server port.
    * @param port int server port.
    */
   public Track(int port)
   {
     this.port = port;
   }

   public int getPort()
   {
     return port;
   }
}

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg


0
Reply noone7 (3512) 7/14/2012 9:04:12 PM

Lew wrote:
  ... [snip] ...
> /* Track
>   * $RCSfile$
>   */
> package eegee;

  ...

> public class Track
> {

  ...

>    private static void serveConnections(ServerSocket serverSocket)
>    {
>      while (true)
>      {
>        final Socket connectionSocket;
>        try
>        {
>          connectionSocket = serverSocket.accept();
>        }
>        catch (IOException exc)
>        {
>          logger.error(BAD_CONNECT, exc);
>          return;
>        }
>        assert connectionSocket != null;
>
>        try
>        {
>          handleClient(connectionSocket);
>        }
>        finally
>        {
>          close(connectionSocket);
>        }
>      }
>    }
  ...

I made a mistake in the 'serveConnections()' method, arguably. Or maybe it 
isn't a mistake.

What do you think; is it a mistake or not?

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg


0
Reply noone7 (3512) 7/14/2012 9:12:01 PM

On Sat, 14 Jul 2012 13:04:55 -0700, Lew wrote:

> Joerg Meier wrote:
>> Lucyann Lenon Emerick De Assis wrote:
>>> Bom dia!
>>> to come�ando com java mas no entanto j� tenho uma certa experi�ncia com php. to tentando criar um serversocket com java para receber dados de um gps modelo tk102 , fiz a classe abaixo que por sinal esta "funcionando" eu emulei o modelo dele no meu smart e ele fez o que tinha que fazer leu e imprimiu em tela os logs, entretanto quando eu coloco o gps pra conectar ele nao conect. sei que ele esta funcionando pois em um forum na net um cara me forneceu o ip do server dele e nele conectou. alguem pode me ajudar ?
>> Hallo!

>> Das ist ein sehr interessantes Schreiben, was Sie da veroeffentlichen.
>> Leider spreche ich Ihre Sprache nicht, genau so, wie Sie vermutlich meine
>> nicht sprechen. Daher ist es sinnvoll, Schreiben in einer der Gruppe
>> angepassten Sprache zu veroeffentlichen.
> Really, Joerg? You couldn't pipe that through Google Translate

> http://translate.google.com

Really, Lew, I could.

Liebe Gruesse,
		Joerg

-- 
Ich lese meine Emails nicht, replies to Email bleiben also leider
ungelesen.
0
Reply joergmmeier (137) 7/14/2012 10:42:03 PM

On Sat, 14 Jul 2012 10:23:52 -0700, Knute Johnson wrote:

> On 7/14/2012 7:56 AM, Lucyann Lenon Emerick De Assis wrote:
>> translating Good morning!
>> to starting with java but Nevertheless I have some experience with php.
>> Trying to create a ServerSocket with java to get data from the GPS
>> model TK102, did the class below That by the way this "working" I
>> emulei the model of it on my smart and he did what he HAD to read on
>> screen and printed logs , However when i put the gps to connect it does
>> not conect. I know he is working as a forum on the net a guy Gave me
>> the ip of the server and connected it hin. Can someone help me?
>> Em sábado, 14 de julho de 2012 09h41min27s UTC-3, Lucyann Lenon Emerick
>> De Assis  escreveu:
>>> Bom dia!
>>> to começando com java mas no entanto já tenho uma certa experiência
>>> com php. to tentando criar um serversocket com java para receber dados
>>> de um gps modelo tk102 , fiz a classe abaixo que por sinal esta
>>> "funcionando" eu emulei o modelo dele no meu smart e ele fez
>>> o que tinha que fazer leu e imprimiu em tela os logs, entretanto
>>> quando eu coloco o gps pra conectar ele nao conect. sei que ele esta
>>> funcionando pois em um forum na net um cara me forneceu o ip do server
>>> dele e nele conectou. alguem pode me ajudar ?
>>>
>>>
>>>
>>> import java.io.BufferedReader;
>>> import java.io.IOException;
>>> import java.io.InputStreamReader;
>>> import java.net.ServerSocket;
>>> import java.net.Socket;
>>>
>>> public class Track {
>>>
>>>      public static void main(String[] args) {
>>>
>>>          //Declaro o ServerSocket ServerSocket serv = null;
>>>
>>>          //Declaro o Socket de comunicação Socket s = null;
>>>
>>>          //Declaro o leitor para a entrada de dados BufferedReader
>>>          entrada = null;
>>>
>>>          while (true) {
>>>
>>>              try {
>>>
>>>                  //Cria o ServerSocket na porta 11000 se estiver
>>>                  disponível serv = new ServerSocket(11000);
>>>
>>>                  //Aguarda uma conexão na porta especificada e cria
>>>                  retorna o socket que irá comunicar com o cliente s =
>>>                  serv.accept();
>>>
>>>   //Cria um BufferedReader para o canal da stream de entrada de dados
>>>   do socket s
>>>                  entrada = new BufferedReader(new
>>>                  InputStreamReader(s.getInputStream()));
>>>
>>>                  //Aguarda por algum dado e imprime a linha recebida
>>>                  quando recebe System.out.println(entrada.readLine());
>>>
>>>                  //trata possíveis excessões de input/output. Note que
>>>                  as excessões são as mesmas utilizadas para as classes
>>>                  de java.io
>>>              } catch (IOException e) {
>>>
>>>                  //Imprime uma notificação na saída padrão caso haja
>>>                  algo errado.
>>>                  System.out.println("Algum problema ocorreu para
>>>                  criar ou receber o socket.");
>>>
>>>              } finally {
>>>
>>>                  try {
>>>
>>>                      //Encerro o socket de comunicação s.close();
>>>
>>>                      //Encerro o ServerSocket serv.close();
>>>
>>>                  } catch (IOException e) {
>>>                  }
>>>              }
>>>          }
>>>
>>>
>>>
>>>      }
>>> }
> 
> A ServerSocket is used when you want to be the server.  A Socket is used
> when you want to connect to a server.  Is the GPS running a server?
>
I've found a set of variations on a sort-of spec for the TK-102 which 
don't shed a lot of light. The thing is a vehicle or person tracker: 
you're meant to stick a SIM into it and either interrogate it via SMS or 
set it up to send you an SMS at configurable intervals to say where it 
is. It also seems to have a microphone that can be used to listen in to 
what's happening near it.

It appears that you can also talk to it via its USB socket for 
configuration, etc. This assumes you'll use something like a Windows box 
running Hyperterminal or a Linux system running minicom or Kermit. I 
gather from this that the USB connection must be a serial connection, 
which Java does not do without JNI, though I suppose you could use a 
socket connection to talk to a TCP:serial converter of some sort.

There is some talk about configuring it with an IPV4 IP, but I frankly 
don't understand this unless you can piggyback a TCP session onto GPRS 
and/or via an SMS stream and so get to it that way.

In any case it looks very much as though the TK-102 wants to be the 
server, so if it can be reached over a socket connection, it looks like 
the OP should be using a Socket rather than a ServerSocket to talk to it.


-- 
martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |
0
Reply martin1645 (527) 7/15/2012 12:28:48 AM

Well, first I thank you for the answer, and guidelines apply to my learning=
!
the customer is a good model tk 102 gps, if not I engando communicates via =
tcp.
What struck me is that the same code works on a smartphone, I used the trac=
ker to emulate mylive sending data tk 102
Em s=E1bado, 14 de julho de 2012 18h12min22s UTC-3, Lew  escreveu:
> Lew wrote:
>   ... [snip] ...
> > /* Track
> >   * $RCSfile$
> >   */
> > package eegee;
>=20
>   ...
>=20
> > public class Track
> > {
>=20
>   ...
>=20
> >    private static void serveConnections(ServerSocket serverSocket)
> >    {
> >      while (true)
> >      {
> >        final Socket connectionSocket;
> >        try
> >        {
> >          connectionSocket =3D serverSocket.accept();
> >        }
> >        catch (IOException exc)
> >        {
> >          logger.error(BAD_CONNECT, exc);
> >          return;
> >        }
> >        assert connectionSocket !=3D null;
> >
> >        try
> >        {
> >          handleClient(connectionSocket);
> >        }
> >        finally
> >        {
> >          close(connectionSocket);
> >        }
> >      }
> >    }
>   ...
>=20
> I made a mistake in the 'serveConnections()' method, arguably. Or=
 maybe it=20
> isn't a mistake.
>=20
> What do you think; is it a mistake or not?
>=20
> --=20
> Lew
> Honi soit qui mal y pense.
> http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
0
Reply lucyann.lenon (4) 7/16/2012 11:49:06 AM

Em segunda-feira, 16 de julho de 2012 08h49min06s UTC-3, Lucyann Lenon Emer=
ick De Assis  escreveu:
> Well, first I thank you for the answer, and guidelines apply to my learni=
ng!
> the customer is a good model tk 102 gps, if not I engando communicates vi=
a tcp.
> What struck me is that the same code works on a smartphone, I used the tr=
acker to emulate mylive sending data tk 102
> Em s=E1bado, 14 de julho de 2012 18h12min22s UTC-3, Lew  escreveu:
> > Lew wrote:
> >   ... [snip] ...
> > > /* Track
> > >   * $RCSfile$
> > >   */
> > > package eegee;
> >=20
> >   ...
> >=20
> > > public class Track
> > > {
> >=20
> >   ...
> >=20
> > >    private static void serveConnections(ServerSocket server=
Socket)
> > >    {
> > >      while (true)
> > >      {
> > >        final Socket connectionSocket;
> > >        try
> > >        {
> > >          connectionSocket =3D serverSocket.accept();
> > >        }
> > >        catch (IOException exc)
> > >        {
> > >          logger.error(BAD_CONNECT, exc);
> > >          return;
> > >        }
> > >        assert connectionSocket !=3D null;
> > >
> > >        try
> > >        {
> > >          handleClient(connectionSocket);
> > >        }
> > >        finally
> > >        {
> > >          close(connectionSocket);
> > >        }
> > >      }
> > >    }
> >   ...
> >=20
> > I made a mistake in the 'serveConnections()' method,=
 arguably. Or maybe it=20
> > isn't a mistake.
> >=20
> > What do you think; is it a mistake or not?
> >=20
> > --=20
> > Lew
> > Honi soit qui mal y pense.
> > http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
you're telling me I have to create a client and not a server socket?, and a=
s I receive data connection?
0
Reply lucyann.lenon (4) 7/16/2012 11:54:32 AM

Lucyann Lenon Emerick De Assis wrote:
> Lew  escreveu:
>> Lew wrote:
>>  ... [snip] ...

> you're telling me I have to create a client and not a server socket?, and as I receive data connection?

No.

I am showing you how to do exactly what you did with your original
code sample, to wit, set up a socket server, with less risk of bugs 
than in your original code.

I have no idea if what you showed will do what you want. You haven't 
provided enough data that I can use to answer that.

Others have asked the relevant questions.

Namely, if the device connects to your server as a client, then you 
write the server code something along the lines shown above.

Is that how the device works?

-- 
Lew
0
Reply lewbloch (1312) 7/16/2012 8:59:51 PM

11 Replies
72 Views

(page loaded in 0.264 seconds)

Similiar Articles:


















7/30/2012 12:33:36 PM


Reply: