Ich habe die folgende Situation. Ich habe einen lokal gehosteten TCP/IP-Server auf Port 8090 Ich muss in der Lage sein, einen Befehl von meiner Android-Anwendung zu senden. Der Server sollte diesen Befehl übernehmen und eine Reihe von Informationen zurückgeben, die ich brauche. Ich habe keinen Zugriff auf die Server- oder Serverprotokolle.Müssen mit einem lokal gehosteten TCP/IP-Server in Java Android Studio kommunizieren
Was ich habe
einfache Socket-Verbindung versuchen, die einfach gut zu verbinden scheint. Jedoch nach dem Verwenden von printWriter und Senden des Servers mein Befehl. Der BufferedReader bleibt bei reader.readLine() oder .read() hängen. Ich nehme an, dass der Server nicht auf meinen Befehl reagiert, schreibt der Schreiber nicht richtig (Wie kann ich das sagen?) Oder diese Methode ist für die vorliegende Situation nicht korrekt.
Ich habe versucht, es mit URL und HTTPURLConnection Objekte zu tun, aber ich bin mir nicht sicher, ob ich es richtig mache.
Ich habe Code, den ich posten kann, aber ich denke, es ist noch nicht relevant.
Was schlagen Sie vor?
angeforderten Code
Socket socket = new Socket("10.0.0.16", 8090);
//Send message to server
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
String number = "message";
String sendMessage = number + "\n";
bw.write(sendMessage);
bw.flush();
System.out.println("Message sent to the server : "+sendMessage);
Thread.sleep(10000);
//Get the return message from the server
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String message = br.readLine();
System.out.println("Message received from the server : " +message);
Können Sie den Server debuggen? Es klingt wie die Lösung wird gefunden, indem Sie sehen, was der Server tut/empfängt. –
Wenn der Empfänger versucht, eine Zeile zu lesen, sollten Sie sicher sein, dass der Absender nach dem Senden eine Zeile gesendet oder den Socket geschlossen hat. Dann geht alles gut. Was machst du stattdessen? – greenapps
'habe Code, den ich posten kann, aber ich denke es ist noch nicht relevant. Natürlich ist es relevant, da Ihr Code noch nicht in Ordnung ist. – greenapps