WINOSCK - opoznienie.

0

Od klikunastu dni męczę się z projektem, ma to być gra wisielec przez sieć oparta na winsock2. Zrobiłem już sporą część. Klient łączy się bez problemu, wysyła komunikaty, jednak jeżeli ma już jakiś komunikat odebrać, to odbiera go, ale z opóźnieniem. Tzn. jeżeli klient wysyła komunikat za pierwszym razem, nic nie dostaje, za drugim również nic, dopiero za 3 razem odbiera odpowiedz wyslaną jak reakcje na pierwszy komunikat. Spotkal sie ktos z takim problemem?

Z góry dziekuje za odpowiedz,
pozdrawiam.

1

To chyba normalne, że pakiety idą sobie z punktu a do punktu b z opóźnieniem :) To jest rzecz jak najbardziej normalna. Po prostu odbieranie pakietów musisz sobie ustawić w jakiejś pętli, w której ew. będziesz ograniczał czas jaki masz czekać na daną 'przesyłkę' np:

while( recv(argumenty))
{
      if(i > 10)
      {
            cout << "nie udalo sie odebrac pakietow!\n";
            break;
      }
      Sleep(100);
      i++;
}

to taki pseudo kodzik. Sprawi, że program będzie oczekiwał 1 sec na odebranie pakietów. Pętla zostanie przerwana jeśli pakiety zostaną odebrane lub jeśli przez 1 sekundę żadne pakiety nie przyjdą

0

Dzięki wielkie, Twój 'pseudokodzik' dużo mi pomógł! ;)

Pozdrawiam.

0

Warunek zły i recv jest funkcją blokującą, takiej wzmianki brakowało ;)

while( !recv(argumenty))

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