Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Warum stürzt ein TServerSocket mit ab wenn einer der Clients (https://www.delphipraxis.net/64361-warum-stuerzt-ein-tserversocket-mit-ab-wenn-einer-der-clients.html)

gi_networx 2. Mär 2006 15:41


Warum stürzt ein TServerSocket mit ab wenn einer der Clients
 
...abschmiert.

Ich habe eine Anwendung mit einem TServerSocket. Diese verschickt an alle verbundenen clients alle 2 minuten folgenden record:

type
Satz = record
val1: String[4];
val2: String[4];
val3: String[4];
val4: String[4];
val5: Array[0..254] of Integer;
end;

Aus einem mir unklaren Grund hängen sich die Clients beim Empfang manchmal auf.
Dabei stürzt mir dann auch das Programm ab, in dem der TServerSocket läuft. Und zwar nicht mit einer Exception sondern mit der Windows-Meldung "blabla hat einen Fehler verursacht und wurde geschlossen".

Woran könnte das liegen? Wenn ich das Client-Programm in lokalen Netz laufen lasse, stürzt es selten ab. Verwende ich den Client aber von zu Hause aus mit einer VPN-Verbindung funktioniert es überhaupt nicht...

Das Verbinden klappt ganz normal...der Fehler passiert erst beim Versand/Empfang von Daten

SirThornberry 2. Mär 2006 16:52

Re: Warum stürzt ein TServerSocket mit ab wenn einer der Cli
 
lass den client doch einfach mal innerhalb von Delphi laufen dann siehst du wo er hängt. Eventuell greifst du ja auch auf grafische Objekte innerhalb eines Threads zu. Ist aber alles nur geraten, und ohne quelltext wird es auch dabei bleiben.

pacman1986 2. Mär 2006 17:16

Re: Warum stürzt ein TServerSocket mit ab wenn einer der Cli
 
stell errorcode auf 0

gi_networx 2. Mär 2006 17:35

Re: Warum stürzt ein TServerSocket mit ab wenn einer der Cli
 
Wenn ich es in der IDE laufen lasse bekomme ich eine EAccessViolation an Adresse blabla. Leider springt mir Delphi an keine relevante Stelle im Quelltext. Sondern nur hinter das "end" im projectfile selber...

Mit dem CPU-Fenster hab ich sowieso leider keinen Durchblick...

Ich kann mir absolut nicht erklären wie dieser Fehler produziert wird. Ich kriege beim Ausführen über VPN in dem Moment in dem Daten ankommen, 5 EAccessViolations die ich nacheinander wegklicke und dann läuft es laut IDE weiter (also ohne Fehler) aber die Anwendung reagiert nicht mehr...Also hilft nur denn Debugger zu beenden...

pacman1986 2. Mär 2006 18:29

Re: Warum stürzt ein TServerSocket mit ab wenn einer der Cli
 
In der methode
Delphi-Quellcode:
clientonerror
Delphi-Quellcode:
errorcode := 0
setzen.

dann kommt kein Fehler mehr

Muetze1 2. Mär 2006 20:04

Re: Warum stürzt ein TServerSocket mit ab wenn einer der Cli
 
Zitat:

Zitat von pacman1986
In der methode
Delphi-Quellcode:
clientonerror
Delphi-Quellcode:
errorcode := 0
setzen.

dann kommt kein Fehler mehr

Ganz cleverer User, Respekt - und nun erklär uns alle doch mal wie das OnError Event des Sockets eine EAccessViolation unterdrücken soll? Schon allein da OnError nur bei Socket Fehlern angestossen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 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