Winsock VS bez blokowania programu

0

Witam

Mam problem, napisałem klienta i serwera, które wysyłają wzajemnie do siebie dane do przesyłania danych skorzystałem z winsock2 i z ogarnięciem całości nie było szczególnego kłopotu z jednym ale... wywołanie poleceń send i recv blokuje program. Jeśli nawiąże się połączenie i próbuje przesłać dane to druga strona czeka na dane blokując swoje wykonywanie na ten czas, czy jest możliwość jakiegoś sensownego obejścia tej sytuacji?
przykładowe polecenie serwera - wyślij

send(s, polecenie.data(), strlen(polecenie.data()), 0);

i odbierz

recv(s, wskaznik_do_bufora, dlugosc_bufora_wiadomosci, 0);

Pozdrawiam

1

Pewnie, użyj select aby sprawdzić czy możesz dokonać nieblokującego odczytu: https://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

0

...albo przełącz sockety w tryb nieblokujący (funkcja ioctlsocket).

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