Witam
Chciałbym napisać aplikacje w c++ obsługującą wiele połączeń (klientów) naraz w której liczy się kolejność nadejścia danych, ze względu na możliwą dużą ilość klientów serwer może być obciążony.
Serwer chce napisać na 90% pod linux'a..
Wiem że jest kilka podejść do pisania takiego serwera, do tej pory pisałem aplikacje klient serwer w których nie było aż takiego obciążenia lub nie liczyła się kolejność nadejścia danych, to co chcę napisać można porównać do czatu a więc liczy się czas nadejścia wiadomości.
Widziałem przykłady i różne podejścia, chciałbym zapytać który waszym zdaniem najlepiej nadawałby się do takiego czegoś, przyjmijmy ze jest to serwer czatu. Zakładam że może być około 30.000 połączeń max.
1 podejście to FD_SET czyli lista gniazd sprawdzana w pętli
2 podejście to serwer oparty wątkach (każdy klient jeden wątek)
Podejście pierwsze jest dla mnie zrozumiałe ale podobno klienci mogą być odrzucani, drugie podejście myślę że jest ok tylko nie bardzo wiem jak to trzeba byłoby zsynchronizować.
Może ktoś z was miał z takim czymś do czynienia lub zna inne rozwiązanie bądź czytał gdzieś o czymś takim? Może macie jakieś sugestie?