Christian Seiler: TCP Socket close() in C

Beitrag lesen

Hallo Cruz,

Ich frage mich bzw. euch, ob es reicht close() auf den Socket Descriptor anzuwenden, oder ob ich jeden einzelnen Connection Descriptor in einen close() stopfen sollte, den mir accept() geliefert hat.

Zuerst: Sowohl das, was Du in accept() reinstopfst, als auch das, was Du rausbekommst, nennt sich Socket.

Wenn Du alle Verbindungen schließen willst, musst Du close() auf jede Verbindung andwenden, denn ein close() verhindert nur, dass neue Verbindungen akzeptiert werden.

Allerdings: Wenn das Programm beendet wird, werden sowieso alle Sockets (und Dateien, etc.) vom Kernel geschlossen, insofern wäre es nicht unbedingt notwendig, alle Sockets zu schließen, wenn Du das Programm hinterher sowieso beendest. Wenn Du's allerdings nicht beendest, solltest Du alle Client-Verbindungen kappen, wenn Du nichts mehr mit denen anstellen willst.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup