selekcjonowanie połączeń z serwerem (ServerSocket)

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

selekcjonowanie połączeń z serwerem (ServerSocket)

Nowy postprzez gregor » sobota, 23 kwietnia 2011, 21:00

Witam

Bardzo proszę was o pomoc. Przeszukałem forum i mimo wielu podobnych tematów nie znalazłem odpowiedzi na ten problem.
Biorąc za przykład z spisu porad „Prosty komunikator sieciowy” serwer wysyła wiadomości do każdego klienta który się połączył z serwerem.
Czy jest możliwość zrobić tak by serwer wysyłał wiadomości do wybranych klientów?
Np. po IP albo loginie.

Pozdrawiam

PS
A może tak:
Ja na razie zrobiłem tak, że gdy klient się łączy z serwerem wysyła do serwera wiadomość z loginem i ten login zapisuje na liście potrzebuje teraz takiego rozwiązania by odrzucać loginy z poza listy, ale nie wiem jak serwer może zerwać połączenie z danym klientem?
Avatar użytkownika
gregor
Bladawiec
Bladawiec
 
Posty: 17
Dołączył(a): wtorek, 5 października 2010, 18:56
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Win XP
Kompilator: RAD Studio 2010
C++
Gadu Gadu: 0
    Windows XPOpera

Re: selekcjonowanie połączeń z serwerem (ServerSocket)

Nowy postprzez Cyfrowy Baron » niedziela, 24 kwietnia 2011, 08:47

gregor napisał(a):Czy jest możliwość zrobić tak by serwer wysyłał wiadomości do wybranych klientów?


Przecież wiadomość można wysłać tylko pod konkretne IP zewnętrzne. Inaczej wiadomości wysłać się nie da.
Skoro tego nie rozumiesz to dalsze rozważania nie mają sensu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: selekcjonowanie połączeń z serwerem (ServerSocket)

Nowy postprzez polymorphism » niedziela, 24 kwietnia 2011, 10:53

Przecież wiadomość można wysłać tylko pod konkretne IP zewnętrzne. Inaczej wiadomości wysłać się nie da.

Jemu chodzi o identyfikację klienta, tak jak w GG po numerze albo w jak w tlenie po loginie. Czyli jak ma połączenie, w postaci socketa, to kojarzy je z loginem klienta, dzięki temu serwer będzie wiedział, jak rozsyłać wiadomości od jednego klienta do drugiego.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: selekcjonowanie połączeń z serwerem (ServerSocket)

Nowy postprzez Cyfrowy Baron » niedziela, 24 kwietnia 2011, 17:27

Tak często już to pisałem, że aż się znów nie chce...
Klient łącząc się z serwerem wysyła mu swój login oraz IP zewnętrzny, ewentualnie serwer sprawdza jaki IP ma podczas sesji klient, który przysłał mu swój login. Serwer zapisuje to na jakiejś liście, łącząc login=IP. Potem chcąc wysłać do jakiegoś wybranego użytkownika wiadomość, sprawdza po loginie jakie ma IP i wysyła wiadomość pod to IP.
Serwer powinien na innej liście przechowywać IP i hasła wszystkich zarejestrowanych użytkowników, by w chwili gdy klient przysyła mu swój login mógł sprawdzić, czy taki użytkownik jest zarejestrowany. Klient oprócz loginu powinien wysłać na serwer również jasło, a serwer powinien porównać login z hasłem i jeżeli się zgadzają, to rejestruje login i IP, jeżeli nie to nie rejestruje.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość