CONNECT(2) | Linux-Programmierhandbuch | CONNECT(2) |
connect - eine Verbindung mit einem Socket starten
#include <sys/types.h> /* Siehe ANMERKUNGEN */ #include <sys/socket.h>
int connect(int Sockdd, const struct sockaddr *Adr, socklen_t Adrlän);
Der Systemaufruf connect() verbindet das durch den Dateideskriptor Sockdd referenzierte Socket mit der durch Adr angegebenen Adresse. Das Argument Adrlän legt die Größe von Adr fest. Das Format der Adresse in Adr wird durch den Adressraum des Sockets Sockdd festgelegt; siehe socket(2) für weitere Details.
Falls das Socket Sockdd vom Typ SOCK_DGRAM ist, dann werden Datagramme standardmäßig an die Adresse Adr gesendet werden und auch nur von dieser Adresse empfangen. Falls das Socket vom Typ SOCK_STREAM oder SOCK_SEQPACKET ist, versucht dieser Aufruf eine Verbindung mit dem Socket herzustellen das an die angebene Adresse Adr gebunden ist.
Sockets für einige Protokolle (z.B. UNIX-Domain-Datenstrom-Sockets) können nur einmal erfolgreich connect() durchführen.
Sockets für einige Protokolle (z.B. Datagram-Sockets in den UNIX- und Internet-Domains) können connect() mehrfach verwenden, um ihre Zuordnung zu ändern.
Sockets für einige Protokolle (z.B. TCP-Sockets sowie Datagram-Sockets in den UNIX- und Internet-Domains) können ihre Zuordnung lösen, indem sie mit einer Adresse verbinden, wobei das Mitglied sa_family von sockaddr auf AF_UNSPEC gesetzt ist. Danach kann sich der Socket mit einer anderen Adresse verbinden (AF_UNSPEC wird unter Linux seit Kernel 2.2 unterstützt).
Falls die Verbindung oder das Anbinden gelingt, wird Null zurückgeliefert. Im Fehlerfall wird -1 zurückgeliefert und errno entsprechend gesetzt.
Die folgenden Fehler sind nur allgemeine Socket-Fehler. Es mag andere, domänenspezifische Fehlercodes geben.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD, (connect() erschien erstmalig in 4.2BSD).
POSIX.1 erfordert nicht, dass <sys/types.h> eingebunden wird. Diese Header-Datei ist in Linux nicht erforderlich. Allerdings benötigen einige historische Implementierungen (BSD) diese Header-Datei. Es wird empfohlen, sie für portierbare Anwendungen einzubinden.
Für Hintergrundinformationen zum Typ socklen_t siehe accept(2).
Falls connect() fehlschlägt, sollten Sie den Zustand des Sockets als unspezifiziert ansehen. Portable Anwendungen sollten das Socket schließen und ein neues für die Wiederverbindung erstellen.
Ein Beispiel für die Verwendung von connect() wird in getaddrinfo(3) vorgestellt.
accept(2), bind(2), getsockname(2), listen(2), socket(2), path_resolution(7), selinux(8)
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
11. April 2020 | Linux |