PHP 5.6.0 released

socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_errorLit la dernière erreur générée par un socket

Description

int socket_last_error ([ resource $socket ] )

Si une ressource de socket est passée à cette fonction, la dernière erreur qui aura été générée par ce socket sera retourné. Si la ressource de socket est omise, le dernier code d'erreur généré est retourné. Ce comportement est particulièrement pratique pour des fonctions comme socket_create() qui ne retournent pas de socket en cas d'échec, et socket_select() qui peut échouer sans raison directement liée au socket. Le code d'erreur peut être transmis à socket_strerror() qui retourne un message d'erreur lisible.

Liste de paramètres

socket

Une ressource de socket valide, créée par la fonction socket_create().

Valeurs de retour

Retourne le code erreur associé au socket.

Exemples

Exemple #1 Exemple avec socket_last_error()

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

if (
$socket === false) {
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);

    die(
"Impossible de créer le socket : [$errorcode$errormsg");
}
?>

Notes

Note:

socket_last_error() n'efface pas le code d'erreur. Utilisez plutôt la fonction socket_clear_error() pour cela.

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