PHP.mk документација

socket_last_error

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.socket-last-error.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.socket-last-error.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
socket_last_error

Референца за `function.socket-last-error.php` со подобрена типографија и навигација.

function.socket-last-error.php

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_last_errorReturns the last error on the socket

= NULL

socket_last_error(?Сокет $socket = null): int

Ако Сокет Ја враќа последната грешка на сокетот socket is nullинстанцата е предадена на оваа функција, се враќа последната грешка што се случила на овој конкретен сокет. Ако socket_create() , се враќа кодот за грешка на последната неуспешна функција на сокетот. Вториот е особено корисен за функции како socket_select() кои не враќаат сокет при неуспех и socket_strerror() кои можат да откажат од причини кои не се директно поврзани со конкретен сокет. Кодот за грешка е погоден за внесување во

која враќа стринг што го опишува дадениот код за грешка. socket_clear_error()Ако не се случила грешка, или грешката била исчистена со 0.

Параметри

socket

А Сокет инстанца креирана со socket_create().

Вратени вредности

, функцијата враќа

Дневник на промени

Верзија = NULL
8.0.0 socket е Сокет Врати ресурс или resource.
8.0.0 socket сега е null.

Примери

Пример #1 socket_last_error() example

<?php
$socket
= @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

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

die(
"Couldn't create socket: [$errorcode] $errormsg");
}
?>

Белешки

Забелешка:

socket_last_error() Оваа функција враќа код за грешка на сокетот. socket_clear_error() за оваа цел.

Белешки од корисници 2 забелешки

не го брише кодот за грешка, користете
пред 16 години
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 */
?>
[email protected]
пред 7 години
note that socket_last_error() cache the last error from the last socket syscall, it does not actually query the OS for the last error on the socket, so if an async socket have an error after the last async operation started successfully, socket_last_error() doesn't know about it, but  socket_get_option($sock, SOL_SOCKET, SO_ERROR) actually query the OS, or so it seems... observed on PHP 7.1.16 on Cygwin on win7 x64 SP1 with non-blocking sockets, socket_last_error() never caught on to the fact that the current error had changed from EINPROGRESS (non-blocking connect) to 0 (connection successful)
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.