Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: C, posix, unix socket  (Przeczytany 4125 razy)

jak0b

  • Gość
C, posix, unix socket
« dnia: 2007-04-21, 15:12:02 »
Aplikacja typu klient serwer.
Każdy klient po uruchomieniu łączy się z serwerem, to co otrzyma od serwera wypisuje na standardowe wyjscie. Dodatkowo przesyła do serwera wszystko co dostanie ze standardowego wejścia (kończy na Ctrl+D). Klient musi rozpoznać zerwania połaczenia z serwerem.
Serwer może przyjąć nie więcej niż 20 klientów (wogóle). Serwer po przyjściu kolejnych porcji danych od klienta wypisuje je na stdout i rozsyła je do innych kleintow. Serwer musi rozpoznać zerwanie połączenia z klientem.
Programy serwera i klientów są jednoprocesowe.
------
Moj problem polega na tym ze nie wiem jak umozliwic podlaczanie sie kolejnych klientow, a jednoczesnie czytanie z socketa kleinta(ow), bo albo wisze na accept albo na select, wiec jak wiszac na select odkryc ze kolejny klient chce sie podlaczyc zeby odpalic accept?? Przypominam ze programy maja byc jednoprocesowe, wiec odpada fork i chyba rowniez multi-threading.

jak0b

  • Gość
C, posix, unix socket
« Odpowiedź #1 dnia: 2007-04-21, 18:21:14 »
sam sobie odpowiem, moze sie komus przyda

oczywiscie nie czekamy na accept, tylko deskryptor socketa zwrocony nam przez fun. socket (program servera) rowniez dolaczamy do zestawu deskryptorow z ktorych oczekujemy danych do czytania i przekazujemy do funkcji select

teraz kiedy select powie ze cos jest do przeczytania z tego deskryptora socketu odpalamy accept i akceptujemy kolejne polaczenie

jesli chce ktos kod, niech da znac, to trzoche go uporzadkuje i wkleje tu

abusiek

  • Gość
C, posix, unix socket
« Odpowiedź #2 dnia: 2007-05-17, 19:41:16 »
Mi by sie kod bardzo przydal bo mam do napisania podobny program :)