Delphi - Indy - TCP

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Jak zrobić, że serwer tcp(indy) odsyła wiadomość do klient-a, a klient ją odczytuje?
i jak zrobić, że serwer udp(indy) odsyła wiadomość do klient-a, a klient ją odczytuje?

Proszę o odpowiedź chociaż na jedno pytanie.
 

The

Użytkownik
Dołączył
Maj 16, 2008
Posty
285
Stawiasz 2 aplikacje: jedną jako serwer, drugą jako klient (IdTCPClient, IdTCPServer). Później szukasz właściwości CommandHandlers bodajże i dodajesz polecenia. Z UDP tak samo, tyle że inne komponenty (IdUDPClient, IdUDPServer).
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
jak już mowa o socketach i indy itp to ja mam pytanie
<
czy mozna przez te komponenty przeslac plik tylko poprostu zeby nie tracic, tzn kiedyś juz pisałem na forum ze podczas przesylania plikow przez sockety czy tam indy to plik nie raz nie dochodzi cały np jak jest wykorzystywane łącze. np strumieniem przesyła się poprawnie?? bo nie testowałęm nawet
<
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
hehe
<
oki pobawie się tym. no i jeszcze ZAPEWNE wiekszość jak nie kazdy ma ten problem, jezeli ma się program nasluchujący no to po jakims czasie wywala mi:
error.jpg

I wie ktoś czemu?? szukałem w google i tam kajs na angielskiej wyczytałęm ze to wina tez wysokich portow, tzn powyzej 5000. zminiłem i jest niby dobrze ale i tak wywala czasami taki błąd.

Czy moze to być spowodowane glatego ze mam client.active:=true w timerze co 15000 ?? bo skoro przepelniona kolejka :/
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
No ale przecierz mam owszem i kilka socketow ale na roznych oczywiscie portach. no bo przecierz przez jedno gniazdko nie da się obsłuzyc wielu rzeczy. szczegolnie w moim przypadku. a nawet jezeli mam jedno w innej aplikacji to tak samo wywala błąd. no jeszcze pozostaje mi sprawdzic tego tometa w sumie jak jest juz aktywny to moze lepiej zrobić juz to przez IF.
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
<div class='quotetop'>CYTAT(The @ 11.03.2009, 18:03) <{POST_SNAPBACK}></div>
Stawiasz 2 aplikacje: jedną jako serwer, drugą jako klient (IdTCPClient, IdTCPServer). Później szukasz właściwości CommandHandlers bodajże i dodajesz polecenia. Z UDP tak samo, tyle że inne komponenty (IdUDPClient, IdUDPServer).[/b]
Wiem mam te CommandHandlers, ale to mi nie pomaga bo chcę przesyłać wiadomości o różnych treściach np. "nowawiadomosc jakastresc", i nie da się dać wszystkich możliwych, czy jest jakieś inne rozwiązanie?
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
<div class='quotetop'>CYTAT(shoock12 @ 21.05.2009, 17:24) <{POST_SNAPBACK}></div>
chcę przesyłać wiadomości o różnych treściach np. "nowawiadomosc jakastresc",[/b]

Czyli?? chcesz przeslac 2 wiadomosci za jednym razem?? (ja to tak rozumie) bo nie rozumie xD
 

Legalnl

Użytkownik
Dołączył
Październik 8, 2008
Posty
828
no to podziel się z nami i napisz je
<
ktoś z pewnością z niego skorzysta w przyszlosci
 

lol_ek

Użytkownik
Dołączył
Maj 30, 2003
Posty
306
<div class='quotetop'>CYTAT(legalnl @ 12.03.2009, 12:08) <{POST_SNAPBACK}></div>
Czy moze to być spowodowane glatego ze mam client.active:=true w timerze co 15000 ?? bo skoro przepelniona kolejka :/[/b]
Kod:
if client.active = false
   then
     client.active := True;
I jeden rzekomy problem mniej.


Z czysto teoretycznego punktu widzenia, "wysokość" portu nie powinna mieć znaczenia. Aczkolwiek tendencją jest, że niektóre porty mają niski priorytet w wielu sieciach. Przypuszczam, że ma to związek próbami przycięcia ruchu p2p.

Jak już masz ustanowione połączenie via TCP to tylko i wyłącznie Twoja sprawa sprawa co wysyłasz. Jeśli Ci urywa koniec pliku to z pewnością błędem opatrzony jest zaplanowany przez Ciebie mechanizm.

Legalni, dla Ciebie rada na przyszłość. Gdy zadajesz pytanie to rób to tak, by inni nie mieli problemu ze zrozumieniem Twojego problemu.


Co by nie offtopicować.
Jak już koledzy zauważyli, skoro znasz komponenty TCS i TSS to i z pakietem indy nie powinieneś mieć problemu. Ewentualne wątpliwości rozwiejesz przeglądając dołączone przykłady.
 
Do góry Bottom