PHP 5.6.0RC3 is available

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 socket_create() que não retorna uma falha no socket e socket_select() que pode falhar por razões não diretamente vinculadas com um socket em particular. O código de erro é conveniente ser colocado para socket_strerror() 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 socket_clear_error() para este propósito.

add a note add a note

User Contributed Notes 1 note

up
0
ca at php dot spamtrak dot org
4 years ago
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 */
?>
To Top