2017-12-14 4 views
0

Hallo Ich habe eine Anwendung, die auf einem Remote-Server über SocketsAndroid Buchse Warte Ausgabe

socket = new Socket(); 
socket.connect(new InetSocketAddress(Ip, portNum), 7000); 

Ich habe 2 Methoden & Verbindung erhalten

das Szenario in send senden ist

PrintWriter out = new PrintWriter(socket.getOutputStream(),true); 

in der Methode erhalten

String msg = ""; 
    BufferedReader in = null; 

    try { 
     in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 


     while (in.ready()) { 

      msg = msg + (char) in.read(); 

     } 
     socket.close(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

in AsyncTask einer anderen Klasse I

send(); 
String response=receive(); 

Der obige Code ohne Wartezeit ist nicht das Senden oder Empfangen

dh

Thread.sleep(2000); 

Ich weiß Schlaf nennen, ist ein schlechter Ansatz was ist das beste Szenario sollte ich verwenden?

Ist es besser, eine AsyncTask innerhalb der Sendemethode und eine weitere für die Empfangsmethode zu erstellen.

Hier ist, wo ich schlafen verwenden und Daten, was & senden empfangen

client.send(some sql statement representED as json format); 
     try { 
      Thread.sleep(3000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
// sql select result represented as json 
     String RESULT = client.recive(); 
+0

Wir können nicht sehen, wo Sie diese Sleep-Anweisung haben. Oder wenn du zwei von ihnen hast. – greenapps

+0

Weiter sollten Sie uns erzählen und zeigen, was Sie senden. Und was Sie als Antwort erwarten. – greenapps

+0

Ich habe die Frage bearbeitet, um zu zeigen, wann ich Schlaf anrufe und welche Daten gesendet und empfangen wurden. – Radwa

Antwort

1

wahrscheinlich, dass Ihr Server nicht zuhört, bevor Sie versuchen, eine Verbindung zu. Obwohl dies aus dem Code, den Sie gepostet haben, nicht klar ist. Sie müssen dort sowohl den Server- als auch den Client-Code anzeigen.

+0

Ich habe nicht geschrieben Server-Code und der Server ist in Go Programmiersprache nicht Java geschrieben, aber die Verbindung von Desktop-Client (C#) funktioniert gut ohne zu warten. – Radwa