Cześć
Chciałbym dowiedzieć się czy operacje zapisu i odczytu z gniazda są bezpieczne jeśli każda z nich wykonuje się w osobnym wątku.
W dużym uproszczeniu chcę zrobić coś takiego:
Wątek 1: wątek z funkcją main() w nim otwieram gniazdo i tworzę 2 nowe wątki
Wątek 2: tutaj odbywa się wyłącznie zapis do gniazda (wysyłanie danych) jedną z funkcji sendto(), write() itp.
Wątek 3: tutaj wyłącznie odbieranie danych z sieci recvfrom(), read() itp.
Po wymianie danych program kończy wątki 2 i 3. Następnie wątek 1 zamyka gniazdo.
Jak wyglądają takie operacje dla gniazd TCP i UDP?
Czy sposób działania jest różny w windowsie i linuxie?
Szukając informacji w internecie znalazłem coś takiego:
https://groups.google.com/forum/#!topic/comp.os.linux.networking/cLbMGRNw8EA
Padła tutaj informacja, że jeśli gniazdo pracuje w duplexie to będzie wszystko ok, ale jak upewnić się programowo że tak rzeczywiście jest (no i czy tak faktycznie jest)
Jeśli ktoś dysponuje linkami do dokumentacji w której jak byk jest napisane, że te operacje są bezpieczne to bardzo proszę o ich podanie
Dzięki