Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] Selektor.wait(sf::seconds(?)) nie czeka

Ostatnio zmodyfikowano 2018-02-02 11:51
Autor Wiadomość
jankowalski25
» 2018-01-30 20:42:43
Aby nie czekać ani chwili i używać blokujących gniazd, należy wywołać
select()
 z odpowiednimi argumentami (przekazując adres struktury
timeval
 wypełnionej zerami, a nie pusty wskaźnik). Z tego, co sprawdziłem, to obecna wersja SFML (dzisiejsza) na to nie pozwala (i wcześniejsze też chyba nie), więc trzeba podejść do tego inaczej, na przykład:
  • Kompilując SFML ze źródeł przerobić nieco kod i dodać taką funkcjonalność.
  • Spróbować dobrać się do gniazda przez takie metody, jak sf::Socket::getHandle() i ręcznie wywołać
    select()
     (jeśli się da tak zrobić, czasami SFML zapewnia możliwość grzebania w wewnętrznych danych, chociaż najlepiej byłoby tego unikać).
  • Czekać tak krótko, jak to możliwe (trudno powiedzieć, jaka wartość będzie tutaj zawsze bezpieczna).
  • Użyć nieblokujących gniazd.
P-169140
thief01
Temat założony przez niniejszego użytkownika
» 2018-02-02 11:51:29
właśnie sęk w tym że on nie czekał przy if'ie .wait, tak samo jak zrobisz if'a z sf::seconds itp. to od razu wchodził do if'a. Coś w stylu jakbyś powiedział dziecku że może pograć dopiero jutro a on i tak dziś zaczyna ;D
P-169193
1 « 2 »
Poprzednia strona Strona 2 z 2