Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ connect.xs(3N-xs) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

poll(2)

select(3C)

accept(3N-xs)

bind(3N-xs)

getsockname(3N-xs)

send(3N-xs)

shutdown(3N-xs)

socket(3N-xs)

connect(3N-xs)                (X/OPEN SOCKETS)               connect(3N-xs)

NAME
     connect - Eine Verbindung zu einem Socket herstellen

SYNTAX
     cc [flag ...] file ... -lxnet [library ...]

     #include <sys/socket.h>

     int connect(int socket, const struct sockaddr *address,
                 sizet addresslen);

BESCHREIBUNG
     Die Funktion connect fordert die Herstellung einer Verbindung zu einem
     Socket an. Für die Funktion können folgende Argumente angegeben wer-
     den:

     socket          Gibt den Dateideskriptor an, der dem Socket zugeordnet
                     ist.

     address         Zeigt auf eine sockaddr-Struktur mit der Partner-
                     Adresse. Länge und Format der Adresse sind von der
                     Adreßfamilie des Sockets abhängig.

     addresslen     Gibt die Länge der sockaddr-Struktur an, auf die das
                     Argument address zeigt.

     Wenn der Ausgangs-Socket nicht verbindungsorientiert ist, setzt
     connect zwar die Partner-Adresse des Sockets, es wird jedoch keine
     Verbindung hergestellt. Bei Sockets des Typs SOCKDGRAM gibt die
     Partner-Adresse an, wohin alle Datagramme bei nachfolgenden send-
     Aufrufen gesendet werden, und schränkt den fernen Sender für nachfol-
     gende recv-Aufrufe ein. Wenn address eine Null-Adresse für das Proto-
     koll ist, wird die Partner-Adresse des Sockets zurückgesetzt.

     Wenn der Ausgangs-Socket verbindungsorientiert ist, versucht connect,
     eine Verbindung zu der vom Argument address angegebenen Adresse herzu-
     stellen.

     Wenn die Verbindung nicht sofort hergestellt werden kann, und
     ONONBLOCK für den Dateideskriptor des Sockets nicht gesetzt ist,
     blockiert connect den Prozeß für einen unbestimmten Zeitraum, bis die
     Verbindung hergestellt ist. Wenn die zulässige Zeit überschritten
     wird, bevor die Verbindung hergestellt werden konnte, schlägt connect
     fehl, und der Versuch des Verbindungsaufbaus wird abgebrochen. Wird
     connect durch ein Signal unterbrochen, das aufgefangen wurde, während
     die Funktion blockiert war (da sie auf die Herstellung einer Verbin-
     dung wartete), schlägt connect fehl und setzt errno auf EINTR. Hierbei
     wird die Verbindungsanforderung jedoch nicht abgebrochen, und die Ver-
     bindung wird asynchron hergestellt.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

connect(3N-xs)                (X/OPEN SOCKETS)               connect(3N-xs)

     Wenn die Verbindung nicht direkt hergestellt werden kann, und
     ONONBLOCK für den Dateideskriptor des Sockets gesetzt ist, schlägt
     connect fehl und setzt errno auf EINPROGRESS. Hierbei wird die Verbin-
     dungsanforderung jedoch nicht abgebrochen, und die Verbindung wird
     asynchron hergestellt. Nachfolgende connect-Aufrufe für denselben
     Socket, die vor Herstellung der Verbindung erfolgen, schlagen fehl,
     wobei errno auf EALREADY gesetzt wird.

     Wenn die Verbindung asynchron hergestellt wurde, zeigen select und
     poll an, daß der Dateideskriptor für den Socket nun geschrieben werden
     kann.

RÜCKGABEWERT
     Bei erfolgreicher Ausführung gibt connect 0 zurück. Andernfalls wird
     -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER
     Die Funktion connect schlägt fehl, wenn eine der folgenden Bedingungen
     zutrifft:

     EADDRNOTAVAIL   Auf die angegebene Adresse kann von der lokalen
                     Maschine aus nicht zugegriffen werden.

     EAFNOSUPPORT    Die angegebene Adresse ist für die Adreßfamilie des
                     angegebenen Sockets nicht gültig.

     EALREADY        Für den angegebenen Socket läuft bereits eine Verbin-
                     dungsanforderung.

     EBADF           Das Argument socket ist kein gültiger Dateideskriptor.

     ECONNREFUSED    Die Zieladresse ist für Verbindungen nicht empfangsbe-
                     reit oder verweigert die Verbindungsanforderung.

     EINPROGRESS     Für den Dateideskriptor des Sockets ist ONONBLOCK
                     gesetzt, und die Verbindung kann nicht sofort herge-
                     stellt werden. Die Verbindung wird asynchron herge-
                     stellt.

     EINTR           Der Verbindungsaufbau wurde durch ein aufgefangenes
                     Signal unterbrochen. Die Verbindung wird asynchron
                     hergestellt.

     EISCONN         Der angegebene Socket ist verbindungsorientiert und es
                     besteht bereits eine Verbindung.

     ENETUNREACH     Das Netz ist nicht erreichbar.

     ENOTSOCK        Das Argument socket verweist nicht auf einen Socket.





Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

connect(3N-xs)                (X/OPEN SOCKETS)               connect(3N-xs)

     EPROTOTYPE      Der Typ der angegebenen Adresse stimmt nicht mit dem
                     Socket überein, der mit der angegebenen Partner-
                     Adresse ist.

     ETIMEDOUT       Die für den Verbindungsaufbau zulässige Zeit ist abge-
                     laufen, bevor die Verbindung hergestellt werden
                     konnte.

     Ist die Adreßfamilie des Sockets AFUNIX, schlägt connect fehl, wenn
     eine der folgenden Bedingungen zutrifft:

     ENOTDIR         Eine Komponente in der Pfadangabe von address ist kein
                     Verzeichnis.

     ENAMETOOLONG    Eine Komponente eines Pfadnamens überschreitet
                     {NAMEMAX} Zeichen, oder ein ganzer Pfadname ist län-
                     ger als {PATHMAX} Zeichen.

     EACCES          Für eine Komponente in der Pfadangabe wird die Suchbe-
                     rechtigung verweigert, oder der Schreibzugriff auf den
                     angegebenen Socket wird verweigert.

     EIO             Beim Lesen aus dem oder Schreiben in das Dateisystem
                     ist ein E/A-Fehler aufgetreten.

     ELOOP           Bei der Übersetzung des Pfadnamens in address wurden
                     zu viele symbolische Links gefunden.

     ENOENT          Eine Komponente des Pfadnamens verweist nicht auf eine
                     vorhandene Datei, oder der Pfadname ist leer.

     Die Funktion connect kann fehlschlagen, wenn eine der folgenden Bedin-
     gungen zutrifft:

     EADDRINUSE      Es wurde versucht, eine Verbindung herzustellen, die
                     bereits belegte Adressen verwendet.

     ECONNRESET      Die Verbindungsanforderung wurde vom fernen Host
                     zurückgesetzt.

     EHOSTUNREACH    Der Ziel-Host kann nicht erreicht werden (möglicher-
                     weise weil er heruntergefahren ist, oder weil er von
                     einem fernen Router nicht erreicht werden kann).

     EINVAL          Die Länge des Arguments addresslen ist für die Adreß-
                     familie nicht gültig, oder die Adreßfamilie in der
                     sockaddr-Struktur ist ungültig.

     ENAMETOOLONG    Durch die Auflösung des Pfadnamens eines symbolischen
                     Links wird ein Zwischenergebnis erzeugt, dessen Länge
                     {PATHMAX} überschreitet.



Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

connect(3N-xs)                (X/OPEN SOCKETS)               connect(3N-xs)

     ENETDOWN        Die lokale Schnittstelle, über die der Ziel-Host
                     erreicht wird, ist nicht aktiviert.

     ENOBUFS         Es ist kein Pufferplatz verfügbar.

     ENOSR           Die verfügbaren STREAMS-Ressourcen reichen für die
                     Ausführung der Operation nicht aus.

     EOPNOTSUPP      Der Socket ist empfangsbereit, und es kann keine Ver-
                     bindung hergestellt werden.

ANWENDUNGSZWECK
     Wenn connect fehlschlägt, ist der Status des Sockets nicht angegeben.
     Bei portierbaren Anwendungen sollte vor einem erneuten Verbindungsver-
     such der Dateideskriptor geschlossen und ein neuer Socket erstellt
     werden.

SIEHE AUCH
     close(2), poll(2), select(3C), accept(3N-xs), bind(3N-xs),
     getsockname(3N-xs), send(3N-xs), shutdown(3N-xs), socket(3N-xs).


































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026