PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Client/Server zeit bis Nachricht


mcbrunox
18.09.2002, 17:34
Wie lange dauert es wenn ich mit Server.open nen Server aufmach eine Nachricht schicken kann ?
Ich hab da ein prob...
ich öffne den server in einer routine und will dann gleich anschließend eine Nachricht schicken.
Also zwischen Server.open und Client.socket.Sendtext habe ich mal sleep(2000) eingebaut..und das ganze im ServerClientRead..hat aber auch nicht geholfen.
weis jemand rat?


procedure TForm1.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s:string;
begin
Memo1.Lines.Add(Socket.ReceiveText);
if memo1.Lines[memo1.lines.count-1]='links'then
begin
s:=edit1.Text;
Server.Port:=44044;
Client.Port:=44044;
Client.Host:=s; //Localhost
Server.Open;
Client.Open;
sleep(2000);
if Client.Active = true then Client.Socket.SendText('mem: '+Edit2.Text);
end;


Manu
18.09.2002, 17:38
Normalerweise geht das nach ein paar Millisekunden.. kommt aber drauf an.
Sleep hilft bei sowas grundsätzlich wenig, weil es meistens, wenn man es irgendwo einsetzen will um von A nach B zu verzögern nach A und B ausgeführt wird.. sowas treibt einen in den Wahn :D
Wenn du den Server startest, dann warte doch einfach nen Moment und sende die Message dann von Hand vom Client.. das sollte doch gehen, wenn das nciht geht, dann hast du einen grundsätzlichen Fehler drin.

mcbrunox
18.09.2002, 17:48
aber es sollte automatisch gehen,,,denn
ich möchte vom client die übertragenen daten auslesen.
dazu schicke ich zuerst den string 'links',damit der client weis das er das port öffnen kann, und danch sollte der client gleich den ersten übertragungsstatus schicken.
später drücke ich am server "STOP",schicke eben den string 'stop'
an den client, und der schickt mir wieder den übertragungsstatus, der dann im server ausgerechnet wird.
Das mit STOP und den Port öffnen funktioniert auch...nur den ersten übertragungsstatus schickt er nicht weg, aus irgend einem Grund auch immer.

Manu
18.09.2002, 17:51
Du könntest ja ein Konstrukt dieser Art basteln:

if Server.open then
Client.bla
...

Dann wird der Text erst/nur gesendet, wenn/nachdem der Server offen/geöffnet ist/wurde.