Wpis z mikrobloga

Mirki, nie ogarniam gniazd BSD.

Załóżmy, że serwer (który ma obsługiwać potencjalnie dowolnie wielu klientów jednocześnie) wisi na funkcji accept. Przychodzi połączenie, accept zwraca deskryptor klienta i co dalej? Podejrzewam, że umieszczam deskryptor w jakimś kontenerze, wątek wraca na accept, a drugi wątek stara się wykonywać funkcje odczytu i zapisu na deskryptorach klientów, tylko jak to powinno wyglądać? Na przykład read i write są blokujące. Co jeżeli zawiesi mi się write, inni klienci czekają, a obsługiwany nie spieszy się z wykonaniem read i opróżnieniem bufora? Jest mi ktoś w stanie wytłumaczyć przepływ sterowania?

#programowanie #jezykc #cpp #bsd #socket
  • 2