![]() |
TClient & TServer socket verbindung
Hi@all,
Komponenten: TClient & TServer Socket Problemfall: Ein Online-Spiel das die Verbindung zum Server aufbauen soll, wenn das Programm gestartet wird. Wenn aber der Server nicht zu errichen ist, dann gibt er einen Asynchron Fehler aus und der Client versucht nicht mehr zu verbinden. Frage: ist es möglich den Clienten so lange verbinden zu lassen, bis das Programm geschlossen wird oder die Verbindung zum Server steht? Mfg Tobias |
Re: TClient & TServer socket verbindung
Delphi-Quellcode:
Bedenke aber, dass das nicht unbedingt die beste lösung ist, so wie du das machen willst!
repeat
try tcpclient1.Connect; except inc(TriesToConnect); end; until tcpclient1.Connected; |
Re: TClient & TServer socket verbindung
Zitat:
MfG Freak |
Re: TClient & TServer socket verbindung
ARG, sehe jetzt erst, dass er sich auch mittendrin beenden sollen kann, sorry. Natürlich, Threads+Abbruchbedingung :wall:
|
Re: TClient & TServer socket verbindung
Er gibt mir Leider immernoch einen Asynchron Fehler aus...
So sieht mein code zum connecten aus:
Delphi-Quellcode:
Was mache ich falsch?
procedure TForm1.FormCreate(Sender: TObject);
begin Client.Address:='127.0.0.1'; Client.Port:=4100; repeat Application.ProcessMessages; try client.Active:=true; except inc(TriesToConnect); end; until client.Socket.Connected=true; end; |
Re: TClient & TServer socket verbindung
Hast du das programm mal über die *.exe gestartet und nicht über F9?
|
Re: TClient & TServer socket verbindung
Prüfe mal, ob auf dem Port überhaupt was läuft, bei einem Connect auf localhost ist ein Fehler in der Verbindung eher unwahrscheinlich.
Sowas
Delphi-Quellcode:
macht man nicht. :)
until client.Socket.Connected=true;
Besser:
Delphi-Quellcode:
until ((client.Socket.Connected) or (TriesToConnect >= MAX_TRIES));
|
Re: TClient & TServer socket verbindung
Hab das Programm über die exe gestartet und den code von ste_ett eingebaut.
Wenn der Server läuft, geht alles Wunderbar! Wenn der Server ausgeschaltet ist, hängt sich das Programm auf, es kommt keine Form und nach einiger Zeit eine Asynchron Fehler meldung... |
Re: TClient & TServer socket verbindung
Zitat:
Wenn keine Anwendung antwortet, wird ewig versucht, eine Verbindung aufzunehmen und das Programm bleibt in der Schleife hängen. Wenn du das z.B. im FormCreate machst, siehst du keine Form, da das Programm diese noch nicht erstellt hat. Wie hoch hast du MAX_TRIES gesetzt? Du solltest auch in den Schleifendurchlauf ein "Sleep();" und ein "Application.ProcessMessages" einbauen. |
Re: TClient & TServer socket verbindung
Warum Sleep?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz