PHP 5.6.0 released

socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_errorDevuelve el último error sobre un socket

Descripción

int socket_last_error ([ resource $socket ] )

Si un recurso socket es pasado a esta función, devuelve el último error que ocurrió en este socket en particular. Si el recurso socket se omite, devuelve el código de error de la última función de socket que falló. El segundo es particularmente útil para funciones como socket_create() que no devuelve un socket en caso de error y socket_select() que puede fallar por razones no directamente vinculadas con un socket en particular. El código de error es apropiado para ser introducido en socket_strerror(), que devuelve una cadena describiendo el código de error dado.

Parámetros

socket

Un recurso socket válido creado con socket_create().

Valores devueltos

Esta función devuelve un código de error de un socket.

Ejemplos

Ejemplo #1 Un ejemplo de socket_last_error()

<?php
$socket 
= @socket_create(AF_INETSOCK_STREAMSOL_TCP);

if (
$socket === false) {
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);
    
    die(
"No se pudo crear el socket: [$errorcode$errormsg");
}
?>

Notas

Nota:

socket_last_error() no limpia el código de error, use socket_clear_error() para este propósito.

add a note add a note

User Contributed Notes 1 note

up
-1
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