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: 28716
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-2024 v.1.5 | design: diviXdesign & rainbowcolors