AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TClient & TServer socket verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

TClient & TServer socket verbindung

Ein Thema von TobiasT · begonnen am 20. Okt 2006 · letzter Beitrag vom 20. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
TobiasT

Registriert seit: 20. Okt 2006
6 Beiträge
 
#1

TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:17
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
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:22
Delphi-Quellcode:
repeat
  try
    tcpclient1.Connect;
  except
    inc(TriesToConnect);
  end;
until tcpclient1.Connected;
Bedenke aber, dass das nicht unbedingt die beste lösung ist, so wie du das machen willst!
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:29
Zitat von inherited:
Delphi-Quellcode:
repeat
  try
    tcpclient1.Connect;
  except
    inc(TriesToConnect);
  end;
until tcpclient1.Connected;
Bedenke aber, dass das nicht unbedingt die beste lösung ist, so wie du das machen willst!
Öhm... dann hängt sich das Programm auf. Außer, da kommt ein Application.ProcessMessages; rein, das Connect kommt in einen Timer / Thread. Vielleicht sollte man auch noch andere Abbruchbedingungen einbauen. Von der Grundidee aber richtig.

MfG
Freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:34
ARG, sehe jetzt erst, dass er sich auch mittendrin beenden sollen kann, sorry. Natürlich, Threads+Abbruchbedingung
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
TobiasT

Registriert seit: 20. Okt 2006
6 Beiträge
 
#5

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:47
Er gibt mir Leider immernoch einen Asynchron Fehler aus...

So sieht mein code zum connecten aus:

Delphi-Quellcode:
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;
Was mache ich falsch?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:49
Hast du das programm mal über die *.exe gestartet und nicht über F9?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#7

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:51
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
until client.Socket.Connected=true; macht man nicht.

Besser:
until ((client.Socket.Connected) or (TriesToConnect >= MAX_TRIES));
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
TobiasT

Registriert seit: 20. Okt 2006
6 Beiträge
 
#8

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 15:59
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...
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#9

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 16:03
Zitat von TobiasT:
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...
Logisch.
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.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: TClient & TServer socket verbindung

  Alt 20. Okt 2006, 16:08
Warum Sleep?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz