Thema: Delphi Socket Error eeConnect

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Socket Error eeConnect

  Alt 19. Jan 2007, 09:33
Ok, sorry, das hatte ich nicht richtig verstanden - aber du hattest es ja oben geschrieben. Gekonnt ignoriert, sage ich da mal.

Ansonsten ist das Verhalten der Sockets wirklich komisch, aber anscheinend wird beim Close der Socket nicht richtig geschlossen und der Thread wird trotzdem mit dem TimeOut informiert. Im Normalfall hängt er so lange in dem aufgerufenen Socket Connect Aufruf bis dieser durch TimeOut zurück kehrt. Da das Close den Socket als "closed" intern vermerken kann, kann er aber nicht die schon aufgerufene Funktion abbrechen, da er dort gerade in der WinSock drinne hängt.

Als Lösung würde ich folgendes Versuchen: Der TCustomWinSocket hat afair eine Eigenschaft mit dem Handle. Wenn du nun mit deinem eigenen TimeOut den Socket abbrichst, dann vermerke dir vorher dieses Handle. Bei der Exception dann vergleich, ob es dieses vermerkte Handle ist und ignoriere den OnError Aufruf komplett. Das wäre ein Vorschlag, in der Annahme, dass das Handle sich unterscheidet zwischen den Versuchen/Verbindungen. Wenn das Handle aber auf der Instanz von TCustomWinSocket basiert, dann wird es wohl nicht klappen. Naja, nur mal so eine Idee...
  Mit Zitat antworten Zitat