Vytvořte systém pro textovou komunikaci více uživatelů.
Program bude mít dvě části -- server, který na zadaném portu přijímá spojení, čte od uživatelů zprávy a tyto zprávy přeposílá ostatním. Klient se připojuje na server a zobrazuje, co posílá server nebo posílá na server řádky textu, které uživatel napíše na klávesnici.
Komunikační protokol bude textový, po připojení pošle klient na prvním řádku nick uživatele, dále se budou posílat už jen zprávy, co zpráva, to řádek. Server před odesílanou zprávu dopíše nick uživatele, případně i čas nebo i barvu pomocí escape-sekvencí, to už nechám na Vás :-).
read()
vrátí
nulu nebo write()
vrátí -1
a nastaví
errno
na EPIPE
).
select()
u čeká na read
událost nad akceptujícím socketem a nad sockety všech klientů.
select()
u čeká nad standardním vstupem a socketem
připojeným na server.
read()
vrátí právě jeden řádek
– díky bufferování standardního vstupu to více-méně bude platit.
Trochu přitvrdíme. Vytvořte decentralizovanou, peer-to-peer variantu. Uživatel se přihlašuje k libovolnému jinému uživateli, systém musí zvládat dynamické odhlašování/přihlašování uživatelů. Odměna +2 body.