PHP 8.4.2 Released!

Soket bağlamı seçenekleri

Soket bağlamı seçenekleriSoket bağlamı seçeneklerinin listesi

Açıklama

Soket bağlamı seçenekleri, tcp, http ve ftp gibi soketler üzerinde çalışan tüm sarmalayıcılar için kullanılabilir.

Seçenekler

bindto

PHP'nin ağa erişmek için kullanacağı IP adresini (IPv4 veya IPv6) ve port numarasını belirtmek için kullanılır. Söz dizimi: IPV4 adreslsr için ip:port ve IPV6 adreslsr için [ip]:port. IP veya porta 0 belirtilirse IP veya portu sistem seçer.

Bilginize:

FTP'de normal işlem sırasında iki soket bağlantısı oluşturulur, port numarası bu seçenek kullanılarak belirtilemez.

backlog

Soketin dinleme kuyruğundaki çıkan bağlantıların sayısını kısıtlamakta kullanılır.

Bilginize:

Sadece stream_socket_server() işlevi için uygulanabilir.

ipv6_v6only

IPv4'ün IPv6'ya eşleştirilmesiyle ilgili işletim sistemi öntanımlısını geçersiz kılar.

Bilginize:

Bu, özellikle [::] üzerinde bir bağ mevcutken IPv4 adreslerini ayrı ayrı dinlemeye çalışırken önemlidir.

Sadece stream_socket_server() işlevine uygulanabilir.

so_reuseport

Ayrı süreçlerden bile olsa aynı ip:port çiftine çok sayıda bağlanma sağlar.

Bilginize:

Sadece stream_socket_server() işlevine uygulanabilir.

so_broadcast

Yayın adresleri/ne/nden veri gönderip alır.

Bilginize:

Sadece stream_socket_server() işlevine uygulanabilir.

tcp_nodelay

Bu seçeneğe true atanması TCP Nagle algoritmasını iptal edeceğinden SOL_TCP,NO_DELAY=1 atamasına sebep olacaktır.

Sürüm Bilgisi

Sürüm: Açıklama
7.1.0 tcp_nodelay eklendi.
7.0.1 ipv6_v6only eklendi.

Örnekler

Örnek 1 - Temel bindto kullanım örneği

<?php
// internete '192.168.0.100' IP'yi kullanarak bağlanalım
$seçenekler = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);


// internete '192.168.0.100' IP ve port '7000' üzerinden bağlanalım
$seçenekler = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);


// internete '2001:db8::1' IPv6 adresini kullanarak bağlanalım
// and port '7000'
$opts = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);



// internete port '7000' üzerinden bağlanalım
$seçenekler = array(
'socket' => array(
'bindto' => '0:7000',
),
);


// bağlamı oluşturalım...
$bağlam = stream_context_create($seçenekler);

// ...ve veri çekmek için kullanalım
echo file_get_contents('http://misal.dom', false, $bağlam);

?>

add a note

User Contributed Notes 2 notes

up
9
mix at ater dot me
5 years ago
The right way for forcing IPv6 is 'bindto' => '[::]:0'
up
2
guru at jnt-finland dot fi
9 years ago
You can set "bindto" to "0:0" to force use IPv4 instead of IPv6. And probably "[0]:0" to force use IPv6, thou this I couldn't test.
To Top