socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_errorRetorna o último erro no socket

Descrição

int socket_last_error ([ resource $socket ] )
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome, incluindo toda documentação pode ser modificado sem aviso em futuras versões do PHP. Esta função deve ser usada por sua própria conta e risco.

Essa função retorna um código de erro do socket.

Se o socket resource é passado para esta função, o último erro que ocorreu neste socket em particular é retornado. Se o socket resource é omitido, o código de erro da última falha na função de socket é retornado. O último é em particular útil como que não retorna uma falha no socket e que pode falhar por razões não diretamente vinculadas com um socket em particular. O código de erro é conveniente ser colocado para que retorna uma string descrevendo o código de erro dado.

<?php
if (false == ($socket = @socket_create(AF_INETSOCK_STREAMSOL_TCP))) {
    die(
"Couldn't create socket, error code is: " socket_last_error() .
        
",error message is: " socket_strerror(socket_last_error()));
}
?>

Nota:

socket_last_error() não limpa o código de erro, use para este propósito.

User Contributed Notes

ca at php dot spamtrak dot org
This is a bit long, but personally I prefer to use the standard C defines in my code.

<?php

define
('ENOTSOCK',      88);    /* Socket operation on non-socket */
define('EDESTADDRREQ' 89);    /* Destination address required */
define('EMSGSIZE',      90);    /* Message too long */
define('EPROTOTYPE',    91);    /* Protocol wrong type for socket */
define('ENOPROTOOPT',   92);    /* Protocol not available */
define('EPROTONOSUPPORT', 93);  /* Protocol not supported */
define('ESOCKTNOSUPPORT', 94);  /* Socket type not supported */
define('EOPNOTSUPP',    95);    /* Operation not supported on transport endpoint */
define('EPFNOSUPPORT' 96);    /* Protocol family not supported */
define('EAFNOSUPPORT' 97);    /* Address family not supported by protocol */
define('EADDRINUSE',    98);    /* Address already in use */
define('EADDRNOTAVAIL', 99);    /* Cannot assign requested address */
define('ENETDOWN',      100);   /* Network is down */
define('ENETUNREACH',   101);   /* Network is unreachable */
define('ENETRESET',     102);   /* Network dropped connection because of reset */
define('ECONNABORTED' 103);   /* Software caused connection abort */
define('ECONNRESET',    104);   /* Connection reset by peer */
define('ENOBUFS',       105);   /* No buffer space available */
define('EISCONN',       106);   /* Transport endpoint is already connected */
define('ENOTCONN',      107);   /* Transport endpoint is not connected */
define('ESHUTDOWN',     108);   /* Cannot send after transport endpoint shutdown */
define('ETOOMANYREFS' 109);   /* Too many references: cannot splice */
define('ETIMEDOUT',     110);   /* Connection timed out */
define('ECONNREFUSED' 111);   /* Connection refused */
define('EHOSTDOWN',     112);   /* Host is down */
define('EHOSTUNREACH' 113);   /* No route to host */
define('EALREADY',      114);   /* Operation already in progress */
define('EINPROGRESS',   115);   /* Operation now in progress */
define('EREMOTEIO',     121);   /* Remote I/O error */
define('ECANCELED',     125);   /* Operation Canceled */
?>