1. ODPALANIE: 1.1 Do klienta nalezy przekazac 3 argumenty: - adres rozgloszeniowy, np.: 224.0.0.1 - adres komputera w sieci, np.: 192.168.1.2 - nick uzytkownika, np.: Student_1 1.2 Przykladowe odpalenie programu: java Klient 224.0.0.1 192.168.1.2 Student_1 2. DOSTEPNE KOMENDY: 2.1. Wysylanie wiadomosci: @(nazwa Uzytkownika,inny uzytkownik,#nazwa grupy):tresc wiadomosci 2.2. Tworzenie grupy: #nazwa grupy=(uzytkownik 1,inny uzytkownik) 2.3. Lista uzytkownikow i grup: kontakty 2.4. Wylaczenie programu: quit 3. PROTOKOL: 3.1 Program uzywa prostego protokolu tekstowego. Przykladowe pakiety z opisem: - 'NazwaUzytkownikaZajeta' [odpowiedz do nadawcy] - wysylany jako odpowiedz kiedy ktos proboje sie zalogowac ('LogujeSie') z nazwa uzywana przez klienta - 'ZapamietajLogin ' [odpowiedz do nadawcy] - wysylany jako odpowiedz na 'LogujeSie', aby nowy uzytkownik poznal nicki i IP wszystkich w sieci - 'LogujeSie ' [do multicast] - wysylany przy odpalaniu programu, mozliwe odpowiedzi: 'NazwaUzytkownikaZajeta' lub 'ZapamietajLogin ' - 'WylogowujeSie' [do multicast] - wysylany przy zamykaniu klienta komenda 'quit' albo po otrzymaniu pakietu z trescia 'NazwaUzytkownikaZajeta' - 'Wiadomosc ' [pakiet do uzytkownika z listy 'adresatow'] - wysylany do kazdego uzytkownika indywidualnie przy wysylaniu wiadomosci 3.2 Program nasluchuje na 2 socketach. Jednym do wiadomosci prywatnych, drugim do wiadomosci wysylanych na adres multicast. Program uzywa portow 12344 i 12345. 4. Rozwiazanie problemu logowania uzytkownika z loginem ktory juz jest w sieci: Jesli uzytkownik uzywa nazwy uzytkownika ktora juz jest znana to zostaje zignorowany. Wyjatkiem jest sytuacja kiedy uzytkownik laczy sie z IP ktore jest zapamietane z dana nazwa uzytkownika. Problemem pozostaje to, ze kazdy moze wyslac pakiet 'NazwaUzytkownikaZajeta' do kogo chce co spowoduje wylogowanie danego uzytkownika. Jednak nie jest mozliwe 'przejecie' nazwy uzytkownika bez wiedzy osob odbierajacych wiadomosci (w takim wypadku pojawia sie komunikaty o wylogowaniu i zalogowaniu uzytkownika z innego IP). Ogolnie siec opiera sie na 'ufaniu w dobre checi innych uzytkownikow sieci lokalnej'.