Frage zur Kommunikation zwischen TCP_Server und Client

M

maksimilian

Ambitioniertes Mitglied
0
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
 
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:
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

R
  • Gesperrt
  • roland-senior
Antworten
2
Aufrufe
806
Fulano
Fulano
M
Antworten
2
Aufrufe
638
Mozart40
M
M
  • MikelKatzengreis
Antworten
5
Aufrufe
172
swa00
swa00
Zurück
Oben Unten