Jak wyslac do servera od clineta wiecej niz jeden Socket naraz ?? Czy jest to w ogóle mozliwe... Lub jak w jednym Sockecie wyslac 2 rozne teksty ?--Ozyrys Pozdrawiam !
serversocket1.Socket.Connections[0].SendText('TEXT'); - to jeżeli wysyła przez serwer Socketconnections[numer gosci, ktory sie polaczyl z toba - wedle czasu - od pierwszego do ostatniego] - chyba :)
clientsocket1.socket.SendText('TEXT'); - jezeli sie z kims połączyłeś
jeżeli chodzi ci o wsysylanie tak ciągle tej samej wiadomości to:
najlepiej przez pętlę for
procedure spamuj_drania(Tekst : string);
var
i :integer;
begin
for t:=0 to 200 do
begin
serversocket1.Socket.Connections[0].SendText('TEXT'); - to jeżeli wysyła przez
lub
clientsocket1.socket.SendText('TEXT'); - jezeli sie z kims połączyłeś
end;
end;
Jeżeli masz jeszcze jakieś pytania to mailnij do mnie.
Pozdrawiam {hello}
ok thx :-) !!
Powiedzmy ze wysylam 3 sockety do servera :
ClientSocket1.Socket.SendText('text');
ClientSocket1.Socket.SendText('text');
ClientSocket1.Socket.SendText('text');
a co jesli chce zeby kazdy odnosli sie do czegos innego ??
ClientSocket1.Socket.SendText('text'); *ten ma by wklejony do Edit1
ClientSocket1.Socket.SendText('text'); *ten do Edit2
ClientSocket1.Socket.SendText('text'); //a ten Edit3
czy jest to w jakis sposob mozliwe ???
--Ozyrys Pozdrawiam !
Po pierwsze: nie wysyłasz socketów tylko tekst!
A jeżeli chodzi o te z tym edit'ami to jest to jak najbardziej mozliwe!
ClientSocket1.Socket.SendText(edit1.text);
ClientSocket1.Socket.SendText(edit2.text);
ClientSocket1.Socket.SendText(edit3.text);
btw jak podałem:
procedure spamuj_drania(Tekst : string);
var
i :integer;
begin
for t:=0 to 200 do
begin
serversocket1.Socket.Connections[0].SendText('TEXT'); - to jeżeli wysyła przez
lub
clientsocket1.socket.SendText('TEXT'); - jezeli sie z kims połączyłeś
end;
end;
TO w Sendtext ('jako ten tekst'); tylko ze nie zadziala jezeli nie wylaczysz '' - wtedy bedzie dzialac procedura. Dalem 'TEXT' jako w ogóle tekst :) a w ogóle w procedurze jest tekst string;
wiec jezeli chcesz aby procka dzialal poprawnie to:
umiesc pierw tę prockę w "public"
procedure spamuj_drania(Tekst : string);
a potem pod implementation
{sr *dfm} czy cos takiego napisz prockę niżej
procedure spamuj_drania(Tekst : string);
var
i :integer;
begin
for t:=0 to 200 do
begin
serversocket1.Socket.Connections[0].SendText(tekst); - to jeżeli wysyła przez
lub
clientsocket1.socket.SendText(tekst); - jezeli sie z kims połączyłeś
end;
end;
Jezeli nie wiesz dlaczego trza ją dac do public to wyjasniam: Inaczej kompilator nie będzie w stanie znaleźć Serversocket i clientsocket!
{browar} {hello}
Źle zorzumiałem :/
Patrz.
Mozesz wysłac takie coś:
clientsocket.sendtext('edit1_OPEK');
clientsocket.sendtext('edit2_OPEK');
clientsocket.sendtext('edit3_OPEK');
lecz na serwerze (server socket) w wątku ONClientRead będziesz musiał umiescic taki oto kod:
var
s : String;
edit : string;
begin
s := Socket.ReceiveText;
edit := Socket.ReceiveText;
delete(s,1,Pos('',s));
delete(edit,Pos('',edit),Length(edit));
if edit = 'edit1' then
begin
edit1.text := Socket.ReceiveText;
end;
if edit = 'edit2' then
begin
edit2.text := Socket.ReceiveText;
end;
end;
Jeżeli kod nie działa to napisz :) - Wiem, że kod trochę kapiasty ale zawsze jest :]
OK Dzieki za pomoc !! :-) {brawo} {browar} {brawo} :-) --Ozyrys Pozdrawiam !
...ale jednak zdaje mi sie ze ten kod nie dziala... :(
mozesz wytlumaczyc mi co to oznacza :
delete(s,1,Pos('',s));
delete(edit,Pos('',edit),Length(edit));
bo niezbyt rozumiem... hmm... --Ozyrys Pozdrawiam !
To ja -ql-GORTH :]
OK odpowiadam:
No musi jakoś zidentyfikować: "edit1_cześć, piszę do edit1"
delete - usuwa znacznik jaki chce :)
czekaj ja napisałem źle kod!!!!!!!!
masz tu nowy:
var
s : String;
edit : string;
begin
s := Socket.ReceiveText;
edit := Socket.ReceiveText;
delete(s,1,Pos('',s)); *usuwam z "edit1_cześć, piszę do edit1" 'edit1'
delete(edit,Pos('_',edit),Length(edit)); *usuwam z "edit1_cześć, piszę do edit1" - _cześć, piszę do edit1
if edit = 'edit1' then
begin
edit1.text := s;
end;
if edit = 'edit2' then
begin
edit2.text := s;
end;
end;
i powinno zadziałać
Jeżeli jednak nie to - skontaktuj się ze mną poprzez gg lub ja to zrobię... Tak czy inaczej - pogadamy :)
cos mi wychodzi ale nie dokladnie to co chcialem albo cos zle zrobilem...
moze jak sie skontaktujemy to latwiej mnie bedzie wytlumaczyc o co dokladnie mi chodzi a tobi odpowiedziec.
PS. Moj nr. GG = 1772993 a mail [email protected]
--Ozyrys Pozdrawiam !
A i jeszcze jedno - jak spowodowac wykonanie przez server jakiejs procedury w inny sposob niz :
if ClientSocket1.Socket.ReceiveText = 'tam cos...' then
//tam cos...
end;
bo o moim zdanim nie jest zbyt praktyczne...
--Ozyrys Pozdrawiam !
Można zrobić
case Socket.Receivetext of
costam;
costam;
end;
Dobry sposób? :)
Nie mozna uzywac w tekstu w instrukcji case - przynajmniej w Delphi--Pawel
Delphi6