Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TIdTCPClient gibt nach Disconnect Socket nicht frei

  Alt 10. Sep 2008, 18:02
nun, der Server läuft auf einem definierten Port.
Den siehst Du mit netstat -a im Status LISTENING.
Dieser Port wird auch direkt wieder freigemacht sobald der Serverdienst beendet wurde.

Der Client sendet nun zu diesen ServerPort ein SYNC.
Der Port von dem der Client sendet ist mehr oder weniger beliebig.
Der Server antwortet nun mit einem Sync-Ack auf diesen Port, der Sever weiß von welchem
Port der Client gesendet hat, denn er hat ja das SYNC Packet empfangen.

Sollte eine Firewall im Kommunikationsweg sein, so muss diese von ausserhalb
auf dem definierten Serverport durchlässig sein. Wenn Ports von der Innenseite
angefragt werden, so werden diese in der Regel durchgelassen.

Delphi-Quellcode:
   angennommen der Server lauscht auf Port 50000
   aussen FW innen
   Client ->SYNC,50000 FW -> SYNC,50000 -> Server
   Client <-SYNC,ACK FW <- SYNC,ACK <- Server
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat