Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

shutdown() - Voll-Duplex-Verbindung abbauen

&pagelevel(4)&pagelevel

#include <sys.socket.h>
  
Kernighan-Ritchie-C:
int shutdown(s, how);

int s, how;

ANSI-C:
int shutdown(int s, int how);


Beschreibung

Die Funktion shutdown() schränkt die Funktionalität des Socket ein und baut die Verbindung nach außen ganz oder teilweise ab. Der Socket bleibt aber bestehen. Mit der Funktion soc_close() können Sie den Socket schließen.

Die Funktion shutdown() wird in den Adressfamilien AF_INET und AF_INET6 unterstützt.

Mit dem Parameter how wird gesteuert, wie die zum Socket s gehörende Verbindung abgebaut werden soll. Folgende Werte von how sind möglich:

SHUT_RD:

Der Socket wird für Lesen gesperrt, d.h. eine Lesefunktion wird nicht mehr ausgeführt. Diese Funktionalität ist in der Anwendung problematisch, weil der Partner-Socket nicht über diese Einschränkung informiert wird.

Wenn der Partner-Socket weiterhin Daten sendet, kann es zu einer Stau-Situation kommen: Die gesendeten Daten belegen Speicherplatz im Transportsystem und diese Ressourcen können nicht freigegeben werden, weil die Daten vom Empfänger nicht abgeholt werden. Wenn die Speicherplatz-Ressourcen erschöpft sind, ist auch das Senden nicht mehr möglich.

SHUT_WR:

Der Socket wird für Schreiben gesperrt. Dem Partner-Socket wird mitgeteilt, dass jetzt keine Daten mehr von diesem Socket gesendet werden. Dies entspricht einem „graceful disconnect“.

SHUT_RDWR:

Der Socket wird für Lesen und Schreiben gesperrt. Dem Partner-Socket wird mitgeteilt, dass weder Daten gesendet noch gelesen werden. Dies entspricht einem „abortive disconnect“.

Returnwert

0:

bei Erfolg

-1:

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen. 

Fehleranzeige durch errno

EBADF

Der Parameter s ist kein gültiger Deskriptor.

ENOTCONN

Für den Socket besteht keine Verbindung.

Hinweis

Die Funktion shutdown() wurde bis zu SOCKETS(BS2000) < V.2.1 ohne Funktionalität unterstützt, d.h. der Aufruf wurde nicht abgelehnt, bewirkte aber keine Aktion.

Die oben beschriebene Funktionalität wird bereitgestellt, wenn das Anwenderprogramm mit der Anwenderbibliothek von SOCKETS(BS2000) ab Version 2.1 kompiliert wurde.

Siehe auch

soc_close()