PHP Doku:: Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist - function.socket-last-error.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteSocketsSocket-Funktionensocket_last_error

Ein Service von Reinhard Neidl - Webprogrammierung.

Socket-Funktionen

<<socket_getsockname

socket_listen>>

socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_errorGibt den letzten Fehler zurück, der an einem Socket aufgetreten ist

Beschreibung

int socket_last_error ([ resource $socket ] )

Wenn ein Socket-Deskriptor an diese Funktion übergeben wird, wird der letzte Fehler, der an diesem bestimmten Socket aufgetreten ist, zurückgegeben. Falls kein Socket-Deskriptor übergeben wird, wird der Fehlercode der letzten fehlgeschlagenen Socket-Funktion zurückgegeben. Letzteres ist besonders hilfreich für Funktionen wie socket_create(), die bei einem Fehler keinen Socket zurückgibt, oder socket_select(), die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun haben, fehlschlagen kann. Der Fehlercode kann an die Funktion socket_strerror() übergeben werden, die eine textuelle Beschreibung dieses Fehlercodes zurückgibt.

Parameter-Liste

socket

Ein gültiger Socket-Deskriptor, der von socket_create() erzeugt wurde.

Rückgabewerte

Diese Funktion gibt den Fehlercode eines Socket-Fehlers zurück.

Beispiele

Beispiel #1 socket_last_error() example

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

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

    die(
"Konnte keinen Socket erzeugen: [$errorcode$errormsg");
}
?>

Anmerkungen

Hinweis:

socket_last_error() löscht den Fehlercode nicht. Dazu müssesn Sie socket_clear_error() aufrufen.


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
ca at php dot spamtrak dot org
15.12.2009 23:33
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 */
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)