Obsługa serwera i klienta

0

Witam
Piszę swój pierwszy program typu klient-serwer na projekcie na studiach.Jest on częścią większego projektu, ale akurat tak wypadło że to właśnie z nim mam problemy.
Serwer musi mieć możliwość obsługi wielu klientów, jednak testuję na razie dla jednego.

Serwer

FileReader fileReader = new FileReader("conf.properties");
				BufferedReader bufferedReader = new BufferedReader(fileReader);
				  
				String linia = bufferedReader.readLine();
				 
				int i = 0;
				while(linia != null)
				{
					i++;
					dataOutputStream.writeUTF(linia);
					linia = bufferedReader.readLine();
					System.out.println("Serwer" + i);
				}
				dataOutputStream.writeUTF("#");
				System.out.println("Serwer jest tutaj");
				bufferedReader.close();

Klient

                        int i = 0;
    			boolean end = true;

    			while(end)
    			{

    			i++;
    			String wiadomosc = dataInputStream.readUTF();
    			System.out.println(wiadomosc);
    			
    			if(wiadomosc == "#")
    			{
    				end = false;
    			}

    			//System.out.println("Klient" + i);
    		
    			}
    			
    			System.out.println("Klient jest tutaj");

Dlaczego nie wypisuje się "Klient jest tutaj", tak jakby klient był cały czas w pętli while ?

2

W Javie Zawartość Stringów porównuje się tak:

if(wiadomosc.equals("#"))
0

Ok, nawet nie przypuszczałem że rozwiązanie jest takie proste.
Kolejny problem - zadeklarowałem statyczną hashmape

	static HashMap<String, String> dane = new HashMap<String, String>();

I chcę do niej przypisać dane. Wszystkie przesyłane linie (poza pierwszą - jest tam data i ta linia jest mi do niczego nie potrzebna dlatego przy wczytywaniu ją pomijam) mają postać :
klucz=wartosc
Chcę ją podzielić na dwie części względem "=" i wpisać je do hashmapy.

                        int i = 0;
    			boolean end = true;

    			while(end)
    			{
    			String wiadomosc =  dataInputStream.readUTF();
    			System.out.println(wiadomosc);
    			
    			if(i!=0)
    			{
    			String[] wiadomoscInfo = wiadomosc.split("=");
    			dane.put(wiadomoscInfo[0], wiadomoscInfo[1]); //blad
    			}
    			
    			if(wiadomosc.equals("#"))
    			{
    				end = false;
    			}

    			i++;
    			}

Okazuje się jednak że wywala mi java.lang.ArrayIndexOutOfBoundsException i nie wiem dlaczego

1

A jak wygląda wiadomosc, która generuje ten wyjątek?

1 użytkowników online, w tym zalogowanych: 0, gości: 1