TCP Socket wann schließen?!



  • Hallo,

    ich bin nicht grade der beste in C, mache das nur hobbiemäßig...

    ich habe einen TCP Server, eine Schleife in welcher ein Thread ständig ins netz nach anfragen hört...

    dies Funktioniert... nun kann ich den Socket und den listener mittels

    close(listenfd);
    close(connfd);

    schließen.... tue ich das nach jedem durchgang in der Schleife?

    habe leide den code nicht zur hand um den hier mal zu zeigen



  • Du rufst einfach "close" auf, wenn du mit der Kommunikation fertig bist. Das OS regelt alles weitere.



  • Andromeda schrieb:

    Du rufst einfach "close" auf, wenn du mit der Kommunikation fertig bist. Das OS regelt alles weitere.

    Wobei close(listenfd) erst dann aufgerufen werden muss, wenn keinee weitere Verbindung mehr angenommen werden soll (das legt zumindest der Variablen-Namen des File-Descriptors nahe).



  • theta schrieb:

    Wobei close(listenfd) erst dann aufgerufen werden muss, wenn keinee weitere Verbindung mehr angenommen werden soll

    Beim Server-Socket. Der Socket, der eine Einzelverbindung repräsentiert, (Server oder Client) wird üblicherweise dann (einseitig) geschlossen, wenn die betreffende Seite der Verbindung nichts mehr zu senden hat. Das bekommt die andere Seite dann zeitnah mit und kann entsprechend reagieren.


Anmelden zum Antworten