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.
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
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno