Podczas korzystania z domyślnego (blokującego) zachowania na gnieździe UDP, w takim przypadku wywołanie sendto() spowoduje blokowanie? Interesuje mnie zasadniczo zachowanie Linuksa.Kiedy wykonuje się blok UDP sendto()?
Dla TCP Rozumiem, że kontrola przeciążenia powoduje zablokowanie wywołania send(), jeśli okno wysyłania jest pełne, ale co z UDP? Czy czasem blokuje lub po prostu pozwala na odrzucanie pakietów na niższych warstwach?
OK, po twoim linku znalazłem objaśnienie specyficzne dla linuksa w [tym wątku] (http://www.mail-archive.com/[email protected]/msg00113.html).Tak krótka uproszczona odpowiedź: _Linux blokuje sendto na pełnym buforze wysyłającym_. –
OK, ale teraz pytanie jest popychane o krok dalej: pod jakimi warunkami Linux pozwoli na wypełnienie bufora gniazda? (w przeciwieństwie do upuszczania pakietów z niego). Jest to niestety bardzo trudne pytanie. – MarcH
@MarcH, a co powiesz na recv, wyślij, gdy gniazdo się blokuje? Myślę, że w takim przypadku send and recv i tak zablokuje? – Bionix1441