[Winsock] Komunikowanie się serwera z klientem
Ostatnio zmodyfikowano 2012-12-24 15:38
kizia Temat założony przez niniejszego użytkownika |
[Winsock] Komunikowanie się serwera z klientem » 2012-12-19 12:09:34 Witam, próbuje stworzyć program, który będzie obsługiwał wielu klientów ( to myślałem zrobić na wątkach ), ale również będzie nonstop komunikował się z każdym klientem. Pytanie w jaki sposób powinienem zrobić to by serwer jak i klient mógł nonstop odbierać i wysyłaś dane? recv( my_sock, &bufor[dane], BUFFOR_SIZE - 1 - dane, 0 ) ; Bo jak wiemy ta funkcja zatrzymuje prace danego wątku :( Z góry dzięki za odpowiedz :P |
|
SeaMonster131 |
» 2012-12-19 15:16:47 |
|
kizia Temat założony przez niniejszego użytkownika |
» 2012-12-19 19:07:46 Tak tak, posiłkowałem się właśnie tym kursem i dlatego stworzyłem ten post iż niezbyt zrozumiałem jego przekaz :P
// EDIT
Doszedłem do wniosku, że funkcja select() pozwoli mi na pozbycie się wątku dla każdego klienta, lecz pozostaje jeszcze sprawa, bym mógł wysyłaś w czasie odczytywania. Czy pomysł aby zrobić dla wątek dla send i recv jest dobry? |
|
CodeMeister |
» 2012-12-19 22:13:25 dobry, bo innego wyjścia nie ma :) |
|
xevuel |
» 2012-12-20 06:49:10 Jest inne wyjście, po prostu gniazda nieblokujące. Ale fakt faktem, wątki będą szybsze do napisania, i z pewnością czytelniejsze w kodzie :) |
|
kizia Temat założony przez niniejszego użytkownika |
» 2012-12-20 21:59:56 A jezeli w funkcji select() w timevalu ustawil tak by nie czekała ona ani chwili tylko od razu wracała do programu i wysyłał wiadomości zaraz po sprawdzeniu "skrzynki odbiorczej" :d Co o tym rozwiązaniu myślicie? |
|
kubawal |
» 2012-12-21 17:24:49 @xevuel: Będzie tak zamulało komputer, że nic innego nie będziesz mógł robić :) Zużyje 100% CPU. @kizia: W głównym wątku aktualizuj listę gniazd gotowych do odczytania, a każdy wątek sprawdza, czy na tej liście ma swój adres, a jeśli tak, to odbiera dane. Uff... Trochę długie to zdanie :) |
|
kizia Temat założony przez niniejszego użytkownika |
» 2012-12-24 15:38:35 Dzięki wszystkim za pomoc :P |
|
« 1 » |