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

[Winsock] Komunikowanie się serwera z klientem

Ostatnio zmodyfikowano 2012-12-24 15:38
Autor Wiadomość
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
P-71419
SeaMonster131
» 2012-12-19 15:16:47
P-71424
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?
P-71442
CodeMeister
» 2012-12-19 22:13:25
dobry,  bo innego wyjścia  nie ma :)
P-71466
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 :)
P-71477
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?
P-71520
kubawal
» 2012-12-21 17:24:49
@xevuel:
gniazda nieblokujące
 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 :) 
P-71548
kizia
Temat założony przez niniejszego użytkownika
» 2012-12-24 15:38:35
Dzięki wszystkim za pomoc :P
P-71858
« 1 »
  Strona 1 z 1