Android socket recevoir des données

Je suis nouveau avec le développement android, donc si d'autres informations plz demander... je suis en train d'utiliser les sockets pour envoyer les coordonnées de serveur, de recevoir les résultats de la requête et de "Toast" entre eux.
Jusqu'à maintenant, dans mon activité:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_socket);

    new Thread(new ClientThread()).start();     

}
      ...

 class ClientThread implements Runnable {
             @SuppressWarnings("deprecation")
            @Override
             public void run() {
                 try {
                     InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
                     socket = new Socket(serverAddr, SERVERPORT);

                 } catch (UnknownHostException e1) {
                     e1.printStackTrace();
                 } catch (IOException e1) {
                     e1.printStackTrace();
                 }
             }
         }


      public void onClickk(View view) {
             try {
                //Acquire a reference to the system Location Manager
                LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);............here some more code regarding coordinates. ............

Et je suis en train d'écrire par le biais de la prise des coordonnées (dans la même méthode):

                        lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

                        if (lat!=null){

                            String json = "";

                            //3. build jsonObject
                            JSONObject jsonObject = new JSONObject();
                            try {
                                jsonObject.accumulate("lat", lat);
                                jsonObject.accumulate("lon", lon);
                            } catch (JSONException e) {
                                //TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            //4. convert JSONObject to JSON to String
                            json = jsonObject.toString();

                         PrintWriter out = new PrintWriter(new BufferedWriter(
                                 new OutputStreamWriter(socket.getOutputStream())),
                                 true);
                         out.println(json);

Comment je peux recevoir les données envoyées par le serveur? Je ne suis pas sûr de la façon d'utiliser le InputSteam.

Mise à JOUR: Mon serveur. Lorsqu'un message est reçu à partir de l'application sur le serveur tente d'écrire une chaîne de caractères sur le socket.

       sock.on('data', function(data) {

          console.log('DATA ' + sock.remoteAddress + ': ' + data);

          sock.write(la);
       });

       });
  • Ce protocole d'utilisation du serveur? Rien d'autre que http?
  • Je suis en utilisant le java.net.Bibliothèque de Socket. Espérons que cette aide
  • Je ne parle pas de l'application android, Votre serveur est un programme java?
  • Non, C'est une demande expresse, nodejs
  • Votre code est bon, alors, obtenir l'inputstream de la prise, de l'envelopper dans un lecteur comme datainputstream et de lire les données entrantes.
  • Ali merci pour votre aide! Où exactement dans le code que je doit faire? Parce que j'ai essayé ceci dans la fin de mon code, mais pour une raison quelconque, quand j'appuie sur le bouton qui déclenche le onclickk méthode le bouton obtenir pile et rien ne se passe. Dois-je lancer un autre fil ou quelque chose?
  • Vous devez faire tout le socket liées à la tâche à l'intérieur du fil. Je vais répondre à la question, de même que certains codes.

InformationsquelleAutor gematzab | 2015-05-19