[winsock] gotowość socketa do działania?

0

Witam. Mam taki problem, piszę aplikację klient <--> serwer. Niestety, komunikacja jest bardzo natężona, czasami dzieje się tak, że muszę wysyłać kolejny pakiet co kilka ms. Wtedy dzieją się dziwne rzeczy, pomimo tego, że używam TCP/IP cześć pakietów się gubi - zwyczajnie nie dochodzi do odbiorcy. Problem leży w zbyt natężonej komunikacji, teraz moje pytanie: czy da się sprawdzić czy socket jest gotowy do wysyłania, czy może jest w danym momencie zajęty i trzeba poczekać? Próbowałem czegoś szukać, ale niezbyt wiem nawet za czym mam googlować...

Pozdro.

0

czego dokladnie uzywasz do komunikacji? czystych socketow czy jakiejs nakladki? probowales asyncio i odsylania nastepnego dopiero po zakonczneiu jednego? pech w tym, ze wysylane dane sa buforowane, wiec zwykle send dziala nieblokujaco i tylko wpisuje do bufora - ale jakos nie chce mi sie wierzyc, zeby zbyt szybkie wywalanie danych na socket powodowalo napisanie bufora nowymi danymi.. raczej wtedy send zachowa sie blokujaco i bedzie czekal az sie miejsce w buforze zwolni. tak powinno byc, ale czy jest - to nie pamietam. sprawdzales jakims wiresharkiem etc czy rzeczywiscie te zgubione pakiety nie sa wysylane? jesli generujesz bardzo duzy ruch, mozliwe ze emitujesz wszystko, ale jakis switch/router po drodze Ci nadmiar wycina, zeby Cie zmusic do zwolnienia obrotow. kontrola strumienia poprzez drop pakietow to normalny mechanizm 'w sieci'

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