Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ connect(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

select(3C)

accept(3N)

getsockname(3N)

socket(3N)

connect(3N)                                                     connect(3N)

NAME
     connect - Verbindung über einen Socket aufbauen

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

     int connect(int s, const struct sockaddr *name, int namelen);

BESCHREIBUNG
     Der Parameter s bezeichnet einen Socket. Handelt es sich um einen
     Socket vom Typ SOCKDGRAM, so gibt die Funktion die Adresse des Kommu-
     nikationspartners an, mit der der Socket verbunden werden soll. Dies
     ist die Adresse, an die Datagramme gesendet werden, und die einzige
     Adresse, von der Datagramme empfangen werden können.

     Falls der Socket s vom Typ SOCKSTREAM ist, versucht connect() eine
     Verbindung zu einem anderen Kommunikations-Endpunkt, einem durch name
     spezifizierten Socket der gleiche Adreßfamilie aufzubauen. name ist
     eine Adresse in der Adreßfamilie des Sockets. Jede Adreßfamilie inter-
     pretiert den Parameter name in seiner eigenen Art und Weise. Wenn s
     (Socket) noch nicht gebunden ist, dann wird er an eine Adresse gebun-
     den, die vom Transportanbieter ausgewählt wird. Im allgemeinen kann
     über einen Stream-Sockets nur eine Verbindung aufgebaut [connect()]
     werden. Datagramm-Sockets können connect() mehrfach verwenden, um ihre
     Kommunikationspartner zu wechseln. Durch Angabe einer Null-Adresse
     kann eine Verbindung über Sockets des Typs SOCKDGRAM beendet werden.

RÜCKGABEWERT
     Falls der Verbindungsaufbau erfolgreich war, wird 0 zurückgeliefert.
     Andernfalls wird -1 zurückgegeben, wobei ein genauerer Fehlercode in
     errno abgelegt ist.

DIAGNOSE
     Der Aufruf schlägt in folgenden Fällen fehl:

     EBADF             s ist kein gültiger Deskriptor.

     ENOTSOCK          s verweist nicht auf einen Socket.

     EINVAL            namelen entspricht nicht der Länge einer gültigen
                       Adresse der verwendeten Adreßfamilie.

     EADDRNOTAVAIL     Der angegebene Partner auf dem fernen Rechner erwar-
                       tet keinen Verbindungsaufbau.

     EAFNOSUPPORT      Adressen der angegebenen Adreßfamilie können mit
                       diesem Socket nicht verwendet werden.

     EISCONN           Der Socket ist bereits verbunden.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

connect(3N)                                                     connect(3N)

     ETIMEDOUT         Die Verbindung konnte nicht innerhalb einer bestimm-
                       ten Zeitspanne aufgebaut werden.

     ECONNREFUSED      Der Verbindungswunsch wurde zurückgewiesen. Das auf-
                       rufende Programm sollte den Socket-Deskriptor mit-
                       tels close(2) schließen und einen weiteren
                       socket(3N)-Aufruf durchführen, um einen neuen
                       Deskriptor zu erhalten, bevor es einen weiteren
                       connect()-Aufruf versucht.

     ENETUNREACH       Das Netz ist von diesem Rechner aus nicht erreich-
                       bar.

     EADDRINUSE        Die Adresse wird bereits verwendet.

     EINPROGRESS       Der Socket ist nicht blockierend und die Verbindung
                       kann nicht sofort vollständig eingerichtet werden.
                       Es ist möglich, zu erfahren, wann die Verbindung
                       hergestellt ist, indem man mit select(3C) das Ein-
                       treffen eines Schreibereignisses für diesen Socket
                       abfragt. Dies ist jedoch nur möglich, wenn das
                       Socket-STREAMS-Modul das oberste Modul auf dem Pro-
                       tokollstack ist, was in der Regel gewährleistet ist.

     EALREADY          Der Socket ist nicht blockierend und vorhergehende
                       Verbindungsversuche sind noch nicht vollständig
                       bearbeitet.

     EINTR             Der Verbindungsaufbauversuch wurde durch ein Signal
                       unterbrochen.

     EPROTOTYPE        Das Protokoll hat für den Socket name den falschen
                       Typ.

     ENOSR             Es waren nicht genügend STREAMS-Betriebsmittel ver-
                       fügbar, um die Operation auszuführen.

     Die folgenden Fehler sind spezifisch für Adressen in der UNIX Adreßfa-
     milie. Diese Fehler sind für zukünftige Versionen der UNIX IPC-
     Adreßfamilie eventuell nicht mehr gültig.

     ENOTDIR           Eine Pfad-Komponente des Pfadnamens in name ist kein
                       Verzeichnis.

     ENOENT            Eine Pfad-Komponente des Pfadnamens in name exi-
                       stiert nicht.

     ENOENT            Der Socket, auf den durch den Pfadnamen in name ver-
                       wiesen wird, existiert nicht.

     EACCES            Die Sucherlaubnis für eine Pfad-Komponente des Pfad-
                       namens in name ist nicht gegeben.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

connect(3N)                                                     connect(3N)

     ELOOP             Es wurden zu viele symbolische Verweise bei der
                       Umsetzung des Pfadnamens in name entdeckt.

     EIO               Es ist ein E/A-Fehler beim Lesen von oder Schreiben
                       auf das Dateisystem aufgetreten.

SIEHE AUCH
     select(3C), accept(3N), getsockname(3N), socket(3N).














































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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