©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.1.0, PHP 5)
socket_listen — Listens for a connection on a socket
$socket
[, int $backlog
= 0
] )
After the socket socket
has been created
using socket_create() and bound to a name with
socket_bind() , it may be told to listen for incoming
connections on socket
.
socket_listen() is applicable only to sockets of
type SOCK_STREAM
or
SOCK_SEQPACKET
.
socket
A valid socket resource created with socket_create() .
backlog
A maximum of backlog
incoming connections will be
queued for processing. If a connection request arrives with the queue
full the client may receive an error with an indication of
ECONNREFUSED, or, if the underlying protocol supports
retransmission, the request may be ignored so that retries may succeed.
Note:
The maximum number passed to the
backlog
parameter highly depends on the underlying platform. On Linux, it is silently truncated toSOMAXCONN
. On win32, if passedSOMAXCONN
, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。 The error code can be retrieved with
socket_last_error() . This code may be passed to
socket_strerror() to get a textual explanation of the
error.
[#1] Karuna Govind (karuna.kgx gmail) [2008-07-15 16:10:03]
To change the maximum allowed backlog by your system (*nix machines only), first you need to find the variable for this limit:
sudo sysctl -a | grep somaxconn
On ubuntu boxes, it returns net.core.somaxconn (you need to look for the 'somaxconn' variable, the full name will vary across different systems).
Update this to a large number as follows:
sudo sysctl -w net.core.somaxconn=1024
This will work straight away. no restart required.