AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Socked-Fehler 10093

Ein Thema von Int3g3r · begonnen am 24. Jun 2020 · letzter Beitrag vom 24. Jun 2020
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.216 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Indy Socked-Fehler 10093

  Alt 24. Jun 2020, 14:05
Ich möchte erreichen das das Objekt "server" automatisch zerstört wird
wenn ich das Form schliesse. Ohne ein manuelles FreeAndNil.
Die paar Buchstaben wirst du noch tippen müssen. Theoretisch könntest du dir mit "Smart Pointern" was dafür basteln, aber das führt zu weit weg von der eigentlichen Frage.

Keep it simple, stupid. Wenn dein Formular deinen TServer im OnCreate erzeugt, zerstöre es doch auch im OnDestroy. Wenn du es im Konstruktor erzeugst, zerstöre es doch auch im Destruktor. Will damit auch sagen: OnActivate ist ein sehr merkwürdiger Ort. Was spricht gegen OnCreate oder den Konstruktor des Formulars?


Socket Error Codes wie diesen kannst du nachschlagen:
https://docs.microsoft.com/en-us/win...-error-codes-2
10093 steht für:
Zitat:
Successful WSAStartup not yet performed.
Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

Wenn du im Debugger anhälst siehst du auch was genau Sache ist:
Die Exception kommt aus dem Thread deines TCP-Servers. Dem fliegt um die Ohren dass jetzt grade (im Hauptthread) durch den finalization -Abschnitt der Indy-Unit IdStackWindows die Methode UninitializeIPHelperAPI aufgerufen wurde. Die ruft die Windows-Routine WSACleanup auf um alles jetzt endgültig zu Ende zu bringen. Dein Server allerdings läuft immer noch (da du keine Lust hattest ihn freizugeben). Deshalb läuft der jetzt auf einen Fehler der dir im Debugger angezeigt wird.

Ohne Debugger siehst du das nicht da die Anwendung eh schon am Herunterfahren ist, ich glaube zu dem Zeitpunkt gibt es auch keine VCL mehr die dir großartig etwas anzeigen könnte. Außerdem tritt der Fehler ja nicht im Hauptthread, sondern in einem Neben-Thread von Indy auf.

Geändert von Der schöne Günther (24. Jun 2020 um 14:19 Uhr)
  Mit Zitat antworten Zitat
 


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 23:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz