shutdown

Wie sieht's aus?

#include <sys/types.h>
#include <sys/socket.h>

int shutdown(int s, int how);
    

Was tut's?

Bei einem Socket handelt es sich um eine full-duplex Verbindung, das heiß es kann gleichzeitig in beide Richtungen gesendet werden. Mit shutdown() wird nun eine dieser Verbindungen geschlossen, anders als close() bleibt die jeweils andere also bestehen.

Was machen die Parameter?

Der erste Parameter bezeichnet den Socket, auf dem operiert werden soll.

Der zweite Parameter, how, gibt an, wie verfahren werden soll. Gültige Werte sind SHUT_RD (empfangen wird unmöglich), SHUT_WR (schreiben wird unmöglich) und SHUT_RDWR (in beide Richtungen geht nichts mehr). Bei SHUT_RD werden Daten, die noch im Eingangspuffer stecken, verworfen, bei SHUT_WR werden die Daten im Ausgangspuffer umgehend versendet. Wozu SHUT_RDWR wirklich gut ist konnte ich nicht herausfinden.

Wie verwende ich es?

shutdown(s, SHUT_WR);