| Autor |
Beitrag |
koller1
      
Beiträge: 216
WIN XP
D7 Ent
|
Verfasst: Mo 25.07.05 22:02
Hallo!
Wenn man das Programm mit dem Clientsocket vor dem Prog mit Serversocket startet gibt es im Allgemeinen eine Fehlermeldung mit 'Asynchroner Socketfehler'! Kann man dies umgehen? z.B. dass er im Fall, dass nichts verbunden werden kann, nochmal 1 Minute probiert, eine Verbindung zu erlangen. geht sowas? Denn wenn das Prog mit Serversocket mal abschmiert, kommt gleich ne fehlermeldung und das ist Mist! Könnt ihr mir helfen?
MFG
koller1
_________________ PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute!
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 25.07.05 22:08
koller1 hat folgendes geschrieben: | | Kann man dies umgehen? |
Ja, erst den Server starten und erst dann den Client. Ansonsten kannst du den Fehler garantiert mit ein bisschen Exception Handling abfangen
AXMD
|
|
koller1 
      
Beiträge: 216
WIN XP
D7 Ent
|
Verfasst: Mo 25.07.05 22:12
Ich schäme mich ein bissel, aber was ist Exception Handling?  Diese ganzen Begriffe! 
_________________ PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute!
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 25.07.05 22:13
try except (siehe Delphi OH)
AXMD
|
|
koller1 
      
Beiträge: 216
WIN XP
D7 Ent
|
Verfasst: Di 26.07.05 13:15
Also würde das lauten:
try
clientsocket1.connecting
except
clientsocket1.connecting;
?????????????????
Geht das so? Das soll so sein, dass wenn er keine Verbing findet solan´ge probiert, bis er eine erkennt!
_________________ PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute!
|
|
mangaka
      
Beiträge: 42
windows xp sp2
Delphi 2005 personal
|
Verfasst: Di 26.07.05 15:36
ich glaube wenn er keine verbindung findet, dann besteht keine verbindung...?!
das was du vorgeschlagen hast:
try
clientsocket1.connecting
except
clientsocket1.connecting;
wird nicht funktionieren. Du hast mit dem Code nur ausgedrückt, dass wenn es einen Fehler beim Verbindungsversuch (try-teil) gibt, er aufjedenfall ( im except-teil) veruschen soll nochmal zu connecten.
damit wirst du es nicht schaffen einen fehler abzufangen, denn wie schon gesagt, wenn er es beim ersten mal nicht schafft zu connecten, dann wird er es beim 2.mal auch nicht(weil die zeit dazwischen zu kurz ist).
bei den indy komponenten gibts sowas was du möchtest:
->IdTCPClient1.Connect(100);//100ms soll er versuchen zu connecten...
vllt gibt es sowas auch bei den sockets...macht dich mal darüber schlau.
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Di 26.07.05 15:44
Titel: Socketfehler
Ich muss zugeben dass ich auch nix richtiges darüber weiß aber vielleicht geht das so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| try clientsocket1.open; except on esocketerror do showmessage('Verbindung konnte nicht hergestellt werden.'); end; |
Wie gesagt könnte sein dass das funktioniert aber sich bin ich nicht!
mfg koller
Moderiert von raziel: Delphi-Tags repariert.
|
|
blaueled
      
Beiträge: 133
Win XP
D5
|
Verfasst: Di 26.07.05 15:53
Lies dir das durch :
www.delphi-forum.de/...meldungen_22001.html
Ändere
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.clientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin if Errorcode<>0 then Showmessage('client: '+NetErrMessage(ErrorCode)); errorcode:=0; |
zu:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.clientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin if Errorcode<>0 then errorcode:=0; |
Die funktion kannst du allerdings weglassen.
Allerdings kann es passieren, dass du einen Error direkt in den WinSocks baust, da hilft das auch nicht
(habe ich schon gehabt)
Ansonsten nenne mal deinen Fehlercode.
Arne
|
|
mangaka
      
Beiträge: 42
windows xp sp2
Delphi 2005 personal
|
Verfasst: Di 26.07.05 15:53
das hört sich schon besser an 
|
|
koller1 
      
Beiträge: 216
WIN XP
D7 Ent
|
Verfasst: Di 26.07.05 16:26
@ blaueled
Danke, das funzt Jetzt meckert der Client nicht mehr rum.
Aber nun ergibt sich ein anderes Problem. Wenn man jetzt den Server startet, verbindet sich der Client nicht mehr mit dem Server. Wie kann man das ändern? Muss der Server einen ping oder so senden? Und wie kann man das machen, wenn's überhaupt geht? Habt ihr Ideen?
MFG
koller1
_________________ PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute!
|
|
DarkLord05
      
Beiträge: 449
WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
|
Verfasst: Di 26.07.05 16:59
Wenn ich das richtig verstanden habe, wird oben ja das Connecten des Clients abgebrochen, nur das halt keine Fehlermedlung mehr auftaucht.
Wenn er aber jetzt trotzdem connecten soll hätte ich mal versucht einen Timer einzubauen. Der versucht den Client mit dem Server zu connecten und wenn das nicht klappt läuft der Timer weiter. Wenn es klappt dann wird der Timer auf Timer.Enabled := False gesetzt und der Client ist mit dem Server connected.
Hoffe das ist das was du meinst.
|
|
koller1 
      
Beiträge: 216
WIN XP
D7 Ent
|
Verfasst: Di 26.07.05 17:01
Ja! Dankeschön! Genauso meinte ich es!
_________________ PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute!
|
|