[C] Wlasny serwer, obsluga wielu klientow naraz

0

http://www.cs.utah.edu/~swalton/listings/sockets/programs/part2/chap6/simple-server.c

Pisze sobie serwer na bazie tego co powyzej, najprostszego dzialajacego jego przykladu.
Oferuje on laczenie sie klientow na konkretny port.

Ogolnie serwer ten ma byc podobny do serwera IRC'a czyli obslugiwac dwa tryby komunikacji tekstowej, poprzez kanal (to co 1 klient napisze trafia do wszystkich innych polaczonych do serwera) oraz prywatnie (1 klient pisze tylko do innego 1 klienta).

Na watkowosci sie nieznam wiec jeden program bedzie musial obsluzyc wielu klientow jednoczesnie, teraz jak to zrobic?
Myslalem zeby po polaczeniu serwer wpisywal do tablicy wszystkie ID klientow polaczonych (clientfd) a potem jesli jeden cos wysle na serwer to serwer w petli wysle ten tekst pokolei do wszystkich innych klientow zapisanych w tablicy.

Problemem moze byc zarzadzanie ta tablica, jesli jakis klientow nieodpowie na cos na ksztalt PING/PONG jak w ircu to musi go usunac z tablicy.

Czegos nieprzemyslalem? Taka tablica klientow dostepnych to dobry pomysl? Czegos brakuje?
Help

0

Znaczy oprócz tego, że masz obsługiwać klientów naraz, a nie po kolei, to wszystko ok. Znaczy bez wątków to będzie fu - ale w sam raz na pierwszy serwer pseudo-irca w życiu ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1