Tato stránka vyžaduje podporu CSS stylů

Semestrální práce z předmětu PJW

i784 - Distribuovaný chat s přenosem souboru

Oto Válek

FEL ČVUT, zimní semestr 2001/2002, cvičení Čt 9:15

1. Popis

Jedná se o samostatnou aplikaci v jazyce Java, implementující jednoduchý distribuovaný chat. Ke vzájemné komunikaci tedy není třeba žádný centrální server. Je však možné ho využít k navázání kontaktu mezi účastníky. Aplikace nabízí jak grafické, tak i textové rozhraní na standardní javovské (systémové) konsoli.

Chat on Windows

2. Ovládací příkazy

Ovládací příkazy lze vždy ručně zadávat na vstup konsole. Grafická verze navíc umožňuje použít k jejich zadání tlačítka a dialogová okna. U těchto příkazů nezáleží na velikosti písmen. Následuje přehled příkazů:

SETUP Alice 222.222.222.222 6060
SETUP Bob pc58.lab.ksu.edu 6060
Nastavení vlastního nickname (přezdívky), IP-adresy a portu pro příjem zpráv. Program pak může očekávat příchozí spojení na zadaném portu. Musí předcházet příkazu CONNECT nebo ROOM. Lze vyvolat tlačítkem Setup.
CONNECT 222.222.222.222 6060
CONNECT pc58.lab.ksu.edu 6060
Připojení k síti uživatelů přes jednoho jejího člena. Od tohoto uživatele program získá adresy ostatních, kterým následně zašle informace o svojí vlasní adrese a jméně. Lze vyvolat tlačítkem Connect.
ROOM http://server.com/chat.cgi Users Připojení k síti uživatelů pomocí serveru. Je třeba zadat předem domluvený název místnosti. Lze vyvolat tlačítkem Connect.
FILE C:\Documents\homework.rtf
FILE ~/homework.rtf
Odeslání binárního souboru všem uživatelům. Přijaté soubory budou uloženy do aktuálního adresáře. Velikost posílaného souboru je omezena.
DISCONNECT Odpojení od sítě. Program však stále čeká na spojení. Lze vyvolat tlačítkem Disconnect.
EXIT Odpojení od sítě a ukončení programu. Lze vyvolat uzavřením okna aplikace.
Hi, Alice Příkaz, který nezačíná uvedenými klíčovými slovy, je považován za zprávu a je odeslán všem uživatelům.
Chat on Solaris

3. Spuštění a parametry příkazové řádky

Celá aplikace je uložena v archivu JAR. Spustit ji na většině systémů lze příkazem
java -jar Chat.jar
Je-li třeba uvolnit konsoli po spuštění aplikace, lze toho dosáhnout příkazem
java -jar Chat.jar & (Unix,Linux)
start /b java -jar Chat.jar (Win NT)
Parametry příkazové řádky:
-text vyvolání textové verze
-nick Alice
nastavení přezdívky (nickname) jako příkazem SETUP. IP-adresa a port jsou nastaveny na implicitní hodnoty.
-setup Alice 222.222.222.222 6060
nastavení parametrů aplikace jako příkazem SETUP.
-room http://server.com/chat.cgi Users
připojení k síti jako příkazem ROOM.

4. Komunikační protokol

Komunikační protokol je znakově a řádkově orientovaný, jako mnoho aplikačních protokolů využívajících TCP (HTTP, SMTP, ..). Pro každý příkaz je otevíráno samostatné TCP spojení. Pokud není uvedeno jinak, provedení příkazu potvrdí druhá strana odpovědí OK na samostatné řádce. Následuje přehled příkazů:
GET Žádost o seznam uživatelů. Příkaz je posílán novým členem ještě před příkazem CONNECT. Odpovědí je seznam řádků ITEM <nick> <host> <port> zakončený řádkou OK.
CONNECT <nick> <host> <port> Oznámení o připojení k síti. Posílá nový člen všem uživatelům zjišteným pomocí přikazu GET se svojí identifikací. Příjemci si nového uživatele uloží do seznamu.
MESSAGE <nick> <host> <port> <text> Zaslaná textová zpráva. Posílá odesílatel všem uživatelům, i sám sobě. Pokud odesílatel není příjemci znám, také si ho uloží do seznamu.
FILE <nick> <host> <port> <name> <size> Zaslaný binární soubor. Posílá odesílatel všem uživatelům, ale ne sám sobě. Pokud odesílatel není příjemci znám, také si ho uloží do seznamu. Data souboru následují za první řádkou s příkazem v kódování BASE64.
DISCONNECT <nick> Odpojení od sítě. Posílá odesílatel všem uživatelům, ale ne sám sobě.

5. Soubory

Přiložené soubory:
chat.jar - zkompilovaná aplikace

chat.zip - ZIP archiv těchto a dalších souborů