serwer gry online - select czy wątki?

0

Witam. Od jakiegoś czasu bawię się nieco socketami i piszę przy ich pomocy prosty serwer do gry online.
Co polecilibyście do obsługi połączeń dla wielu klientów - select czy wątki? Spotykałem się już z różnymi opiniami na ich temat, w sumie każdy mówi inaczej. Rozumiem, że nie dostanę jednoznacznej odpowiedzi, ale może ktoś pisał aplikację podobnego typu i mógłby się na ten temat wypowiedziec?

Pozdrawiam.

0

np:
pojedyncze watki per polaczenie jesli masz malo graczy i obsluga gracza moze trwac dlugo
jeden watek+asyncio/select jak wielu graczy i obsluga gracza trwa krotko
podzial polaczen na pule + asyncio/select + watki robocze + menadzer przydzialu pul polaczen miedzy watki robocze jesli graczy wielu i obsluga gracza moze trwac sporo

ogolnie, uzywaj czego mozesz, byle z glowa i sensem..

0

Dziękuję za odpowiedź.
Próbowałem obu rozwiązań, oba się sprawdzały dla małej liczby graczy (dla dużej niestety z wiadomych przyczyn nie miałem okazji przetestować) dlatego miałem nadzieję na jakieś wskazówki. Co do mieszania obu rzeczy (select i wątki) - myślę, że wtedy musiałbym uwzględniać ograniczenia obu technik, dlatego lepiej byłoby pozostać przy jednej (chyba, że się mylę?).

Pozdro.

PS Pierwszy post to mój ;).

0

możesz stosować co chcesz, oba rozwiązania nie będą błędne

aczkolwiek będą się nieznaczeni różnić wydajnością,, wszystko ci pisał już wąż, aczkolwiek ważnym elementem będzie jeszcze wielordzeniowość komputera, załóżmy, że masz 8 rdzeniowy komp, może okazać się, że na wątkach nawet w większej ilości będzie znacznie szybciej śmigać, niż przełączanie asynchroniczne,

Musiałbyś przetestować na konkretnej maszynie, która opcja będzie lepiej działać

0

A ja jestem za selectem.
Największą zaletą jest brak wątków. Prędzej czy później nastąpi sytuacja kiedy trzeba będzie zarządzać dostępem do danych wspólnych dla wielu graczy i we wątkach jest to bardzo trudne do zrobienia.
Jeżeli oprogramuje się select, to wtedy znacznie łatwiej zapanować na wyoknywaniem kodu przez wielu użytkownikow,

0

e tam, gadanie.. jak poprawnie napiszesz to jedyne co, to moga Ci sie transakcje przeciac - ale to juz inny problem.. jesli masz zas serwer bazy danych to tym bardziej warto pomyslec o watkach (albo async) - do obslugi bazy - serwer moze przymulac przy niektych zapytaniach..

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