Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

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

Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Krzysiu555 » środa, 3 marca 2010, 20:30

Tak jak w temacie chciałbym przeprowadzić komunikację:
Klient 1 -> Serwer -> Klient 2
w sensie że K1 wysyła do serwera komunikat z jakimś numerem identyfikacyjnym K2 (ip albo jakiś własny) a serwer przekazuje ten komunikat do K2 z informacją od kogo pochodzi.

Lepiej taką komunikację przeprowadzić TClientSocket i TServerSocket tak jak w poradzie "Prosty komunikator sieciowy" czy lepiej przez Indy TCP Client i TCP Server?
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Cyfrowy Baron » czwartek, 4 marca 2010, 09:55

To jak będzie lepiej sam zdecyduj. Zadanie można zrealizować zarówno za pomocą Socket'ów jak i INDY, a o tym czy to będzie działać lepiej czy gorzej decydują raczej umiejętności programisty niż użyte biblioteki.

Co do reszty pytania, to jest zbyt ogólne by na nie odpowiedzieć.
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: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Krzysiu555 » piątek, 5 marca 2010, 21:04

dzięki. poczytam jeszcze zarówno i jednym jak i drugim i coś postanowię. ;)
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Darek_C++ » piątek, 5 marca 2010, 21:29

Z tym, że IMHO serwer nie może wysłać nic do klienta Klient 2, bo serwer wysyła dane tylko w odpowiedzi na żądanie klienta.
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Krzysiu555 » piątek, 5 marca 2010, 21:53

IMHO czyli?

Właśnie na tym mi zależy żeby serwer mógł wysłać coś do klienta bez żądania.

Zawsze można zrobić tak że serwer trzyma w pamięci to co ma do przekazania dla K2, a K2 co jakiś czas sprawdza czy nie ma czegoś nowego a jak jest to S mu to podaje.
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Darek_C++ » piątek, 5 marca 2010, 22:26

IMHO http://pl.wiktionary.org/wiki/IMHO
Ale serwer nie działa w ten sposób, że rozsyła dane nie proszony o to. W takiej konfiguracji jak piszesz sam klient musiał by nasłuchiwać na danym porcie stając się w pewien sposób serwerem, bo to serwer nasłuchuje, a nie klient. Przynajmniej tak działają znane mi aplikacje serwerowe jak baza danych Mysql, serwery pocztowe SMTP, HTTP nawet ping :)
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Krzysiu555 » piątek, 5 marca 2010, 22:32

dobra, dzięki ;)
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez marsianinek » piątek, 27 sierpnia 2010, 11:35

To o czym pisze Darek jest jak najbardziej prawdziwe. Owszem klient jak i serwer mogą wysłać cokolwiek i kiedykolwiek chcą, ale wtedy nad tym nie zapanujesz, gdy np. klient o coś zapyta a w tym czasie serwer również, wtedy klient otrzymaną odpowiedź potraktuje jako odpowiedź na swoje pytanie i tu zaczyna się mętlik. Dlatego stosuje się protokoły w rodzaju client->serwer. Jeśli potrzebujesz aby serwer coś zainicjował to musisz zrobić dodatkowe pytanie od strony klienta w postaci: "Czy coś ode mnie chcesz?" i wysyłasz je np. co 30 sek, w zależności jaki czas reakcji potrzebujesz. Wtedy serwer odpowiada i mówi czego chce. Wiadomo, że może mu się uzbierać kilka spraw, więc jesteś zmuszony do zrealizowania sobie prostej kolejki komunikatów, które serwer sobie zbiera w ramach danego klienta. Druga sprawa to, jeśli twoja aplikacja potrzebuje aby to serwer częściej o coś prosił to możesz role odwrócić. To że klient łączy się do serwera nie wymusza aby tylko klient pytał a serwer odpowiadał, możesz cały mechanizm odwrócić i zrobić tak, że klient się tylko łączy a serwer nawija jako pierwszy a klient realizuje odpowiedzi - to już zależy wszystko od Ciebie.
Avatar użytkownika
marsianinek
 
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez polymorphism » piątek, 27 sierpnia 2010, 12:28

Nie wiem czy zauważyłeś, ale odpowiedziałeś na wątek sprzed prawie pół roku :)
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: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez marsianinek » piątek, 27 sierpnia 2010, 13:14

Wiem, ale to nie oznacza, że ktoś nie będzie teraz szukał podobnego problemu, więc każda odpowiedź jest na czasie, gdyż tematyka client-server itp. chyba jeszcze nie wyginęła :)
Zawsze mnie drażnią osoby które wypierają mi, że odgrzewam stare tematy. Pamiętaj są też inni, którzy szukają...
Avatar użytkownika
marsianinek
 
    Windows XPFirefox

Re: Komunikacja klient1 > serwer > klient2 jak ja rozwiazac?

Nowy postprzez Krzysiu555 » piątek, 27 sierpnia 2010, 16:18

chwilowo ten program poszedł w odstawkę ale dzięki;)
Avatar użytkownika
Krzysiu555
Intelektryk
Intelektryk
 
Posty: 161
Dołączył(a): sobota, 23 sierpnia 2008, 16:55
Podziękował : 2
Otrzymał podziękowań: 1
System operacyjny: Windows 7 Professional 64
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 0
    Windows 7Firefox


  • 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 4 gości

cron