Winsock co lepsze select() czy wątki
Ostatnio zmodyfikowano 2013-11-29 16:42
braders Temat założony przez niniejszego użytkownika |
Winsock co lepsze select() czy wątki » 2013-11-28 23:54:12 Tak jak w temacie interesuje mnie info dla serwera i klienta. Dla klienta głównie od strony zminimalizowania potrzebnych zasobów i łącza. Dla serwera szybkość programu. |
|
pekfos |
» 2013-11-29 14:11:45 Co ma select() do wątków? |
|
DejaVu |
» 2013-11-29 14:38:20 Domyślam się, że szukasz sobie pretekstu, aby nie używać funkcji 'select', ale niestety jest to 'zło konieczne'. Popatrz sobie na SFML-a pod kątem komunikacji sieciowej. Tutorial jest łatwy i klasy są wygodne w użyciu. |
|
Elaine |
» 2013-11-29 16:14:58 O select najlepiej zapomnieć, jedyne sensowne wykorzystanie tej funkcji to zachowywanie kompatybilności z systemami, które nie mają nic lepszego.
Mainstreamowe systemy mają coś lepszego. Windows ma porty zakończenia wejścia/wyjścia, podobnie jak Solaris, Linux ma epoll, BSD (wliczając OS X) mają kqueue. I to tych mechanizmów należy używać, jeśli chce się uniknąć problemów ze skalowalnością. |
|
DejaVu |
» 2013-11-29 16:29:50 @Alueril: to masz na myśli dla Windowsa? http://msdn.microsoft.com/en-us/library/windows/desktop/ms741669(v=vs.85).aspxSFML akurat używa select-a dla Windowsa: bool SocketSelector::wait( Time timeout ) { timeval time; time.tv_sec = static_cast < long >( timeout.asMicroseconds() / 1000000 ); time.tv_usec = static_cast < long >( timeout.asMicroseconds() % 1000000 ); m_impl->SocketsReady = m_impl->AllSockets; int count = select( m_impl->MaxSocket + 1, & m_impl->SocketsReady, NULL, NULL, timeout != Time::Zero ? & time: NULL ); return count > 0; }
|
|
Elaine |
» 2013-11-29 16:42:48 |
|
« 1 » |