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.
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.
|
|
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ů