Frage zur Kommunikation zwischen TCP_Server und Client

  • 2 Antworten
  • Neuester Beitrag
Diskutiere Frage zur Kommunikation zwischen TCP_Server und Client im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

maksimilian

Neues Mitglied
Hallo Ihr,
eine Konfiguration mit TCP-Server (Pi, Python) und Client (Handy-Android, Java) funktioniert gut. Jetzt möchte ich die Kommunikation erweitern. Der Server soll nach Kontaktaufnahme des Clients und Senden einer Nachricht diesem 2x hintereinander antworten. Mit 2x socket.send() vom Server und 2x dataInputStream.readUTF() hintereinander funktioniert es ja offensichtlich nicht. Die beiden Nachrichten, welche der Server an den Client schicken soll, können nicht in einer einzigen Nachricht geschickt werden. Wie muss ich da vorgehen ?

Client:
Code:
public class MyClientTask extends AsyncTask<Void, Void, Void> {
        String dstAct;
        String response = "";

        MyClientTask(int act) {
            dstAct = Integer.toString(act);
        }

        @Override
        protected Void doInBackground(Void... arg0) {

            Socket socket = null;
            DataOutputStream dataOutputStream = null;
            DataInputStream dataInputStream = null;
            String s;

            try {
                socket = new Socket("192.168.178.66", 50000);
                dataOutputStream = new DataOutputStream(
                        socket.getOutputStream());
                dataInputStream = new DataInputStream(socket.getInputStream());
                dataOutputStream.writeUTF(dstAct);
                response = dataInputStream.readUTF(); // 1. Nachricht vom Server
               // jetzt finden Ereignisse im Server statt,
               // deren Ergebnis dem Client gemeldet werden soll:
                response = dataInputStream.readUTF(); // 2. Nachricht vom Server,
                                                                                        // so geht's nicht
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
               
            ......
maksimilian
 
J

jogimuc

Stammgast
Hallo


Die beiden Nachrichten, welche der Server an den Client schicken soll, können nicht in einer einzigen Nachricht geschickt werden.
Wiso das? Du benutzt ja Streams also benutze sie auch auf dem Server.

ansonsten Anfrage Antwort Anfrage Antwort ..... Verbindung beenden Socket schließen.
Klassisches TCP Kommunikations Model. Request Response
 
Zuletzt bearbeitet:
M

maksimilian

Neues Mitglied
Inzwischen habe ich einen Weg gefunden. Nach einem DataInputStream() im Client schließe ich den Socket und instanziere einen neuen DataInputStream, mit welchem die zweite Nachricht vom Server gelesen werden kann.
 
Ähnliche Themen - Frage zur Kommunikation zwischen TCP_Server und Client Antworten Datum
10