Loading:


    socket_connect

    bool socket_connect ( resource $socket , string $address [, int $port=0 ] )

    Inicjuje połączenie z gniazdem

    Parametry

     

    socket -  gniazda ważnych zasobów utworzone za pomocą socket_create().

    address -
    adres IP np 127.0.0.1 dla gniazda  AF_INET lub np. ::1 dla gniazda AF_INET6


    port - ten parametr jest użyty tylko podczas połączeia do gniazda   AF_INET lub AF_INET6

     

     

    Zwracane wartości

    Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.



    Napisz Artyku³

    Listing


    //Ten przykład nie blokuje połączenia, które powinno wykonać się dużo szybciej

    <?php
    function msConnectSocket($remote, $port, $timeout = 30) {
            # czy $remote jest nazwą hosta lub adresem IP
            $ip = "";
            if( !preg_match('/^\d+\.\d+\.\d+\.\d+$/', $remote) ) {
                $ip = gethostbyname($remote);
                if ($ip == $remote) {
                    $this->errstr = "       
    Błąd podczas łączenia z gniazdem: nieznany host"
    ;
                    return NULL;
                }
            } else $ip = $remote;

            if (!($this->_SOCK = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
                $this->errstr = "Błąd podczas tworzenia gniazda: ".socket_strerror(socket_last_error());
                return NULL;
            }

            socket_set_nonblock($this->_SOCK);

            $error = NULL;
            $attempts = 0;
            $timeout *= 1000;  //
            $connected;
            while (!($connected = @socket_connect($this->_SOCK, $remote, $port+0)) && $attempts++ < $timeout) {
                $error = socket_last_error();
                if ($error != SOCKET_EINPROGRESS && $error != SOCKET_EALREADY) {
                    $this->errstr = "Error Connecting Socket: ".socket_strerror($error);
                    socket_close($this->_SOCK);
                    return NULL;
                }
                usleep(1000);
            }

            if (!$connected) {
                $this->errstr = "Error Connecting Socket: Connect Timed Out After $timeout seconds. ".socket_strerror(socket_last_error());
                socket_close($this->_SOCK);
                return NULL;
            }
           
            socket_set_block($this->_SOCK);

            return 1;    
    }
    ?>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors