===== Příklady programů =====
^ zaměření příkladu ^ jazyk ^ ke stažení ^ datum posl. změny ^
|Jednoduchý TCP server (echo služba) s postupným zpracováním po jednom dotazu| C |[[http://baryk-ng.felk.cvut.cz/tcps.c|tcps.c]] | 2011-01-29 |
|Klient pro výše uvedený TCP server| C |[[http://baryk-ng.felk.cvut.cz/tcp.c|tcp.c]] | 2011-01-29 |
|TCP server se spouštěnými podprocesy na základě požadavku na spojení | C |[[http://baryk-ng.felk.cvut.cz/tcps-fork.c|tcps-fork.c]] | 2011-01-29 |
|TCP server zpracovávající všechny požadavky paralelně. Paralelizmus v rámci procesu je řešen použitím funkce select(). | C |[[http://baryk-ng.felk.cvut.cz/tcps-select.c|tcps-select.c]] | 2011-01-29 |
|Jednoduchý UDP server (echo služba) s postupným zpracováním po jednom dotazu| C |[[http://baryk-ng.felk.cvut.cz/udps.c|udps.c]] | 2011-01-29 |
|Klient pro výše uvedený UDP server| C |[[http://baryk-ng.felk.cvut.cz/udp.c|udp.c]] | 2011-01-29 |
|Příklad na tvorbu vláken - vhodný pro implementaci serveru, konkrétně obsluhu více klientů najednou| C |[[http://baryk-ng.felk.cvut.cz/threads.c|threads.c]] | 2011-01-29 |
|Příklad na tvorbu vláken - vhodný pro implementaci serveru, konkrétně obsluhu více klientů najednou| C++ |[[http://baryk-ng.felk.cvut.cz/threads.cpp|threads.cpp]] | 2011-01-29 |
|TCP echo služba (server a klient) | java |[[http://baryk-ng.felk.cvut.cz/java-tcp.zip|java-tcp.zip]] | 2011-01-29 |
|UDP echo služba (server a klient) | java |[[http://baryk-ng.felk.cvut.cz/java-udp.zip|java-udp.zip]] | 2011-01-29 |
|Šablona pro úlohu č.1 v jazyku Java (příklad na echo službu upravený pro překlad na serveru Baryk) | java |[[http://baryk-ng.felk.cvut.cz/uloha_1.zip|uloha_1.zip]] | 2011-01-30 |
Poznámky:
* Příklady implementující echo službu: servery opakují zpět klientům co dostanou, klienti vyšlou data na server a zase je přijmou.
* Příklad použití jmenných služeb najdete v udp.c, v ostatních příkladech je použití vynecháno pro větší přehlednost.
* Překlad zdrojových kódů v jazyce C se na počítačích SUN od prostředí s Linuxem mírně liší. Tam, kde je to potřeba, definujte:
=== ===
#define NULL 0
#define herror perror
#define atexit(fn) on_exit(fn, 0)
#define memmove memcpy
#define INADDR_NONE -1
Pro překlad použijte parametry:
gcc -lnsl -lsocket
===== =====
* Rozbalení, překlad a spuštění příkladů v jazyce Java (konkrétně pro TCP echo server):
=== ===
unzip tcp.zip
cd TCP
javac client/Client.java
javac server/Server.java
java server.Server&
java client.Client
===== =====
* Rozbalení, překlad a spuštění šablony pro úlohu č.1 v jazyce Java:
=== ===
unzip uloha_1.zip
cd uloha_1
javac robot/Robot.java
java robot.Robot 3999 & # spuštění serveru (jako proces na pozadí)
java robot.Robot baryk-ng.felk.cvut.cz 3999 # spuštění klienta