AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Socket Fehler 10051. Aber nur beim "brutalen" schließen.
Thema durchsuchen
Ansicht
Themen-Optionen

Socket Fehler 10051. Aber nur beim "brutalen" schließen.

Ein Thema von Thomas83 · begonnen am 17. Sep 2008 · letzter Beitrag vom 24. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#1

Socket Fehler 10051. Aber nur beim "brutalen" schl

  Alt 17. Sep 2008, 13:43
hi zusammen,

habe hier im Forum schon mal nach diesem Fehler gesucht und habe da auch einiges gefunden.
Nur leider werde ich daraus nicht schlau und komme nicht mehr weiter .

Mein Client / Server Anwendung funktioniert wunderbar.
Der Client befindet sich in einem Thread.
Zum Test sendet der Client und der Server alle 100ms einen string.

Wenn der Client Offline geht, über schließen, alles wunderbar.
Ziehe ich aber das Netzwerkkabel kommt (eher selten) beim Server diese Meldung
Zitat:
Windows Socket Fehler: Eine bestehende Verbindung wurde softwaregesteuert duch den Hostcomputer abgebrochen (10053), auf API 'recv'
und beim Client diese Meldung
Zitat:
Asynchroner Socketfehler #10053
Wenn ich den Server beende bzw. einfach schließe kommt diese Meldung auch.

Wie kann ich diese unterbinden bzw. abfangen? Errorcode = 0 bringt nichts.
Der Client soll immer die Verbindung versuchen zu halten bzw. aufbauen egal wie der Server beendet wurde. Wenn ihr Sourcen braucht sagt welche eventuell helfen.....

thx
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#2

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 17. Sep 2008, 14:01
habe noch was vergessen. Wenn ich den Client und den Server auf einem Computer laufen lasse, kein Thema ohne Probleme. Egal wie ich den Server schließe bekomme keine Fehlermeldung.
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#3

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 13:17
kann mir keiner helfen bzw. was zu der Meldung sagen.....
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 13:22
Edit: folgendes hilft, wenn der client falsch beendet wird: thomas, das passiert, weil die verbindung nicht geschlossen wird. wenn du den prozess deines clients über den taskmanager schließt passiert das gleiche.

das beste was da abhilfe schafft, ist ein ping. alle 10sek. oder so schickst du allen clients ein ping und wenn die clients den ping erhalten, schicken sie ein pong zurück. bevor du dann den nächsten ping wegschickst, checkst du ob alle clients ein pong gesendet haben, wenn einer dabei ist, der kein pong gesendet hat, schließt du seinen socket und löscht ihn aus der liste, sowas nennt sich auch Timeout


habs grad ma mit meinem chatproggi getestet, wenn ich den chatserverprozess beende, bekomme ich den gleichen fehler, da wird man nich viel machen können außer halt, wenn der fehler kommt, die verbindung schließen und wieder neuaufbauen
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#5

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 13:27
danke für die schnelle Antwort.
Wenn ich eine paket versende wird ein Ping gesendet erst bei Antwort wird ein Pong gesendet dann erst das eigentliche Paket.

Nur wird der Client beendet bzw. der Server wird beendet, weis das die Gegenstelle nicht und bringt diesen fehler
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 13:29
wird der client falsch beendet, kriegt das der server über den nicht erhaltenden pong mit und kann so vorbeugend die verbindung zu diesem client schließen bevor ein socketfehler auftritt, andersrum wirds schwieriger, ich check ma ebend
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 13:33
sooo hab grad ma netzwerkkabel gezogen. der server bekommt die 10053 meldung und kicked daraufhin den benutzer aus der userliste (weil kein pong zurückkomt), der server hat also kein problem damit.

der client bekommt auch nen 10053 fehler und kann dann darauf reagieren, indem er z.B. nach 30sek neu verbindet (also nachdem der timeout des servers abgelaufen ist)
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#8

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 14:30
Versuche in onerror den 10053 abzufangen. Egal was ich da schreibe, die Meldung kommt dennoch.
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 14:49
Edit: ups überlesen

einfach ErrorCode:=0; fertig
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#10

Re: Socket Fehler 10051. Aber nur beim "brutalen"

  Alt 22. Sep 2008, 14:51
genau da schreibe ich ErrorCode :=0 dennoch kommt der Fehler..... hmmmmmm
  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 20:49 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