SYNOPSIS
        #include <comm.h>
        int net_connect(string host, int port)

BESCHREIBUNG
        Oeffne eine nicht-blockierende TCP Netzverbindung zu
        <host>:<port> .  Bei Erfolg wird die Verbindung zum
        aufrufenden Objekt gebunden und die lfun logon() wird in dem
        Objekt aufgerufen.

        Resultat ist einer der folgenden Werte:
          NC_SUCCESS        net_connect() erfolgreich
          NC_EUNKNOWNHOST   Host-Adresse nicht ermittelbar
          NC_ENOSOCKET      Fehler beim Erstellen des Sockets
          NC_ENOBIND        Fehler beim Binden des Sockets
          NC_ENOCONNECT     Fehler beim Verbindgen des Sockets
        (Details ueber die letzten drei Fehler lassen sich im Fehlerlog des
         Drivers ermitteln.)
          NC_ECONNREFUSED   Ziel ignoriert Verbindungsversuch
          NC_EMCONN         zuviele unerledigte Verbindungen im Aufbau
                            (voruebergehender Fehler, spaeter probieren)
          NC_ENORESSOURCES  ungenuegende Ressourcen fuer Verbindungs-
                            versuch (spaeter nochmal versuchen)

        Ist der Driver fuer IPv6 konfiguriert, wird <host> erst als
        IPv6-Name interpretiert, und wenn das fehlschlaegt, als
        IPv4-Name.

        Wenn die Verbindung nicht sofort erzeugt werden kann, gibt die
        Funktion 'Erfolg' zurueck, und der Driver vollendet die
        Funktion im Hintergrund. Sollte die Verbindungsaufbau im
        Hintergrund fehlschlagen, wird logon(-1) im aktuellen Objekt
        aufgerufen.

        Die Funktion erzeugt eine privilege violation ("net_connect",
        host, port).

        WARNUNG: Ist <host> ein Name und keine IP, fuehrt die Funktion
        einen DNS-Aufruf durch, der den Driver fuer einige Zeit
        blockieren kann.

SIEHE AUCH
        logon(A)
