hej,

mam problem, mam do zrobienia dwa programy do szkoły. chodzi o komunikacje klient-server.

Mam zrealizować następujace dwa protokoły

 
/*protokół:
* klient wysyła A, serwer odczytuje A
* serwer wysyla AA, klient odczytuje AA
* klient wysyła B, serwer odczytuje B
* serwer wysyła BB, klient odczytuje BB
* klient wysyła C, serwer odczytuje C
* serwer wysyla CC, klient odczytuje CC
* */

tutaj kody:
klient

public void run() {
        String wiadomosc;
        String wiadomosci[] = {"A", "B", "C"};
        /*scenariusz :
         * klient wysyła A, serwer odczytuje A
         *  klient wysyła AA, serwer odczytuje AA
         *  klient wysyła B, serwer odczytuje B
         * */
        try {
            for (int i = 0; i < wiadomosci.length; i++) {
            wyjscie.writeObject(wiadomosci[i]);
            System.out.println("Klient wysyla: " + wiadomosci[i]);
            wiadomosc = (String) wejscie.readObject();
            if (wiadomosc!=null)
            System.out.println("Klient odbiera: " + wiadomosc);
                    else break;
            }
            gniazdo_klienta.close();
            wyjscie.close();
            wejscie.close();
        } catch (Exception e) {
            System.out.println("Wyjatek klienta 2 " + e);
        }
    } 

serwer:

public void run() {
        String wiadomosc;
        String wiadomosci[] = {"AA", "BB", "CC"};
        try {
            /* klient wysyła A, serwer odczytuje A
            * */
              for (int i = 0; i < wiadomosci.length; i++) {
            wiadomosc = (String) wejscie.readObject();
            if (wiadomosc != null) {
                System.out.println("Serwer odbiera: " + wiadomosc);
            } else {
                break;
            }
             wyjscie.writeObject(wiadomosci[i]);
             System.out.println("Serwer wysyla: " + wiadomosci[i]);
              }
            wejscie.close();
            wyjscie.close();
            gniazdo_klienta.close();
        } catch (Exception e) {
            System.out.println("Wyjatek komponentu klienta po stronie serwera " + e);
        }
    }
} 

ten działa jak najbardziej poprawnie, ale nie wiem jak zabrać sie do drugiego

 serwer wysyła A1 / klient odbiera A1
Klient wysyła B1 / serwer odbiera B1
Klient wysyła B2 / server odbiera B2
Server wysyła A2 / klient odbiera A2

tutaj najpierw wysyła serwer potem jakby stopuje (odbiera dwie wiadomości od klienta) i znowu wysyła kolejną wiadomosc.