Założeniem projektu jest to że do 1 serwera będzie podłączone do 1000 klientów jednocześnie (klient będzie wysyłał komunikat do serwera co 15 sekund). Czy powyższy przykład “uciągnie” takie rozwiązanie?? Czy do 1 portu serwera można przyporządkować aż tyle klientów jednocześnie??
Ponoć najlepiej do tego nadają się serwery synchroniczne…
Serwer nasłuchuje na jednym porcie(i jednym gnieździe), gdy ktoś chce się do niego podłączyć, tworzy nowe gniazdo i wątek, i w nim się komunikuje z klientem(a ten wątek co nasłuchiwał, nasłuchuje dalej).
Ja(i przypuszczam, że większość) bym tak zrobił. Artykułu nie czytałem.
Nie wiem czy wyświetlanie MessageBoxa jest dobrym pomysłem. 1k na 15 sekund to troszkę dużo.
ale z tego co wyczytałem są 2 rodzaje serwerów - synchroniczne i asynchroniczne- Ty mówisz o asynchronicznym??
z tymi mesageboxami to tylko przykład - ogólnie to będę zapisywał komunikaty do pliku…
potrzebuje takie zestawienie klienta i serwera które umożliwi mi komunikację pomiędzy serwerem a klientem (obustronną).
Klientów będzie ok 1000… co ok 15 sekund każdy z klientów będzie wysyłał komunikat poprzez gniazdo do serwera i serwer będzie zapisywał tą wartość do pliku. Co 30 sekund serwer ma wysyłać komunikat do każdego z klientów…
ogólnie takie jest założenie projektu;) możesz coś podpowiedzieć lub najlepiej pokazać jakiś przykład??
gniazda mogą wykorzystywać różne protokoły, np. UDP, TCP. Komunikacja może się odbywać na dwa sposoby:
synchronicznie
asynchronicznie.
W przypadku trybu synchronicznego jeśli program oczekuje na jakieś dane od klienta, to blokuje on odbieranie danych od innych klientów dopóki nie otrzyma interesujących go danych. W sytuacji, gdy jakiś inny klient chce podłączyć się do serwera, to nie może tego uczynić ponieważ jest blokowany przez pierwszego klienta.
Natomiast w trybie asynchronicznym, w czasie kiedy serwer oczekuje na połączenia lub odbiera dane od klienta, to może cały czas przetwarzać zapytania od innych klientów.
czyli wychodzi na to że te asynchroniczne są lepsze ;))
a mógłbyś mi podesłać na maila sampla?? ***
edit_
Pomagamy sobie na forum a nie na kanałach prywatnych.
Czy tak trudno znaleźć sobie dokumentacje(tu MSDN) i poczytać, potem usiąść do środowiska(ew. edytora i linii komend) i coś napisać? Chłopie, to w konsoli jest około 100 linii kodu(architektura klient-serwer).
Jak zapłacisz, pomogę. Tak to nie mam zamiaru. To na tyle banalny problem, że powinieneś go sam rozwiązać, a gdy już byłbyś bardzo zdesperowany, powinieneś zwrócić się o pomoc na forum z dokładnym opisem problemu.