PHP 8.0.0 Released!

socket_listen

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

socket_listenBir soketi bağlantı kabul etmek için dinler

Açıklama

socket_listen ( resource $soket [, int $kuyruk = 0 ] ) : bool

socket_create() ile bir soket oluşturulup socket_bind() işlevini kullanarak bir isimle ilişkilendirilince soket bir dinlenen soket haline gelir.

socket_listen() sadece SOCK_STREAM ve SOCK_SEQPACKET türündeki soketlere uygulanabilir.

Değiştirgeler

soket

socket_create() ile oluşturulmuş geçerli bir soket özkaynağı.

kuyruk

İşlem için kuyruğa alınacak azami gelen bağlantı sayısı. Dolmuş bir kuyruğa gelen bir bağlantı ya ECONNREFUSED belirten bir hata alır ya da ilgili protokol yeniden bağlanmayı destekliyorsa yineleme başarılı olacağından istek yok sayılır.

Bilginize:

kuyruk değiştirgesine atanacak değer çalışılan platforma büyük oranda bağımlıdır. Linux üzerinde kendiliğinden SOMAXCONN'a düşürülür. Win32 üzerinde SOMAXCONN atanırsa makul bir azami değer kullanımından ilgili hizmet sağlayıcı sorumludur. Windows üzerinde bu değer için standart bir yaklaşım yoktur.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner. Hata kodu socket_last_error() işlevi ile alınabilir. Bu hata kodunu socket_strerror() işlevine aktararak hatayı açıklayan dizgeyi alabilirsiniz.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
5
renmengyang567 at gmail dot com
1 year ago
<?php
// create for tcp
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
socket_bind($sock, '127.0.0.1',5000);
socket_listen($sock,1);
sleep(20);
?>

<fruit>
netstat  -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:5000          0.0.0.0:*               LISTEN      1839/php
up
-32
Karuna Govind (karuna.kgx gmail)
12 years ago
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.
To Top