Hauptindex | Abschnitt 2 | English | 日本語 | Optionen |
#include <sys/socket.h>
int accept(int s, struct sockaddr *addr, int *addrlen);
Das Argument addr ist ein Rückgabeparameter, das mit der Adresse der verbindenden Einheit gefüllt wird, wie sei der Kommunikationsschicht bekannt ist. Das exakte Format des addr Parameters wird von der Domain festgelegt, in der die Kommunikation stattfindet. Die Variable addrlen ist ein Rückgabeparameter, sie sollte anfangs die Anzahl Bytes enthalten auf die addr zeigt; bei der Rückgabe enthält es die aktuelle Länge der Adresse (in Bytes). Dieser Aufruf wird bei verbindungsbasierten Sockettypen benutzt, momentan in Verbindung mit SOCK_STREAM.
Es ist möglich, einen Socket mit select(2) aufzumachen, um ihn mit einem accept zum Lesen zu benutzen.
Bei bestimmten Protokollen, die explizite Bestätigung verlangen, wie ISO oder DATAKIT, kann davon ausgegangen werden, daß accept nur die nächste Verbindung aus der Warteschlange holt ohne sie automatisch zu bestätigen. Die Bestätigung kann ein normaler Lese- oder Schreibvorgang auf dem neuen Deskriptor mit sich bringen, eine Ablehung kann impliziert werden durch ein Schließen des neuen Sockets.
Man kann die Daten einer Verbindungsanforderung ohne Bestätigung erhalten, indem man einen recvmsg(2) [Englisch] Aufruf absetzt mit einer auf null gesetzten msg_iovlen un einem msg_controllen ungleich null oder durch Aufruf von getsockopt(2) [Englisch]. Analog dazu kann man die Ablehnung einer Benutzerverbindung erzeugen, indem man sendmsg(2) [Englisch] nur mit den Kontrollinformationen aufruft oder durch setsockopt(2) [Englisch].
EBADF | Der Deskriptor ist ungültig. |
ENOTSOCK | |
Der Deskriptor referenziert eine Datei und keinen Socket. | |
EOPNOTSUPP | |
Der referenzierte Socket ist nicht vom Typ SOCK_STREAM. | |
EFAULT | Der Parameter addr ist kein beschreibbarer Teil des Adreßraums des Prozesses. |
EWOULDBLOCK | |
Der Socket ist als nicht-blockierend markiert, aber es sind keine zu akzeptierenden Verbindungen vorhanden. | |
8. Mai 1996 | ACCEPT (2) | BSD |
Hauptindex | Abschnitt 2 | English | 日本語 | Optionen |
Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.
“ | I think Unix and snowflakes are the only two classes of objects in the universe in which no two instances ever match exactly. | ” |
— Noel Chiappa |