Autor Beitrag
koller1
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 25.07.05 22:08 
user profile iconkoller1 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 Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: Mo 25.07.05 22:12 
Ich schäme mich ein bissel, aber was ist Exception Handling? :oops: Diese ganzen Begriffe! :D

_________________
PLEASE INSERT SYSTEM DISK AND PRESS ENTER!
Und wenn du nicht gestorben bist, presst du noch heute! ;)
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 25.07.05 22:13 
try except (siehe Delphi OH)

AXMD
koller1 Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

windows xp sp2
Delphi 2005 personal
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Di 26.07.05 15:44 
Titel: Socketfehler
Ich muss zugeben dass ich auch nix richtiges darüber weiß aber vielleicht geht das so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
try
clientsocket1.open;
//versuchen eine Verbindung aufzubauen
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 user profile iconraziel: Delphi-Tags repariert.
blaueled
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 133

Win XP
D5
BeitragVerfasst: Di 26.07.05 15:53 
Lies dir das durch :
www.delphi-forum.de/...meldungen_22001.html

Ändere

ausblenden 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:

ausblenden 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;


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42

windows xp sp2
Delphi 2005 personal
BeitragVerfasst: Di 26.07.05 15:53 
das hört sich schon besser an :)
koller1 Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
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++
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 216

WIN XP
D7 Ent
BeitragVerfasst: 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! ;)