socket_recvfrom

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

socket_recvfromBağlantılı olsun olmasın bir soketten veri alır

Açıklama

socket_recvfrom(
    Socket$soket,
    string&$tmmpon,
    int$uzunluk,
    int$seçenekler,
    string&$adres,
    int&$port = null
): int|false

socket_recvfrom() işlevi belirtilen soket üzerinden tampon tamponundan uzunluk baytlık veriyi adres'teki port. porttan alır. İşlev bağlantılı (tcp) ve bağlantısız (udp) soketlerle çalışabilir. Ayrıca, bazı seçeneklerle işlevin davranışında değişiklik yapılabilir.

isim ve port gönderimli aktarılmalıdır. Soket bağlantı yönelimli değilse isim bağımsız değişkenine uzak konağın IP adresi veya Unix soketinin dosya yolu atanacaktır. Soketin bağlantı yönelimli olması durumunda isimnull'dur. Bunun yanında, soketin bir bağlantısız AF_INET veya AF_INET6 soket olması durumunda port uzak konağın port numarasını içerecektir.

Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.

Bağımsız Değişkenler

soket

socket_create() ile oluşturulmuş geçerli bir Socket nesnesi.

tampon

Alınan verinin yerleştirileceği tampon.

uzunluk

Uzak konaktan alınacak azami bayt sayısı.

seçenekler

Aşağıdaki değerlerin bitsel VEYAlanmış (|) bir birleşimi olabilir

Olası seçenekler
SeçenekAçıklama
MSG_OOB Band dışı veri işlenir.
MSG_PEEK Veri alım kuyruğunun başlangıcından alınırken kuyruktan silinmez.
MSG_WAITALLuzunluk bayt alınıncaya kadar soket baskılanır. Ancak, bir sinyal alınırsa veya uzak konak bağlantıyı keserse işlev daha az veriyle dönebilir.
MSG_DONTWAIT İşlev bekleme kipinde olsa bile bu seçenek işlevin beklemeden dönmesine sebep olur.
adres

Soket AF_UNIX türündeyse dosya yolu, bağlantısız soketse uzak konağın IP adresi, bağlantı yönelimli bir soketse null'dur.

port

Sadece AF_INET ve AF_INET6 soketlere uygulanır ve verinin alındığı uzak portu belirtir. Soket bağlantı yönelimli ise portnull olacaktır.

Dönen Değerler

socket_recvfrom() işlevi alınan bayt sayısını döndürür. Bir hata oluşmuşsa 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.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0soket artık bir Socket örneği olabiliyor; evvelce resource türündeydi.

Örnekler

Örnek 1 - socket_recvfrom() örneği

<?php
$socket
= socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo
"$from adresinin $port. portundan $buf bayt alındı" . PHP_EOL;
?>

Bu örnek 127.0.0.1 adresindeki 1223. port üzerinde bir UDP portu oluşturup uzak konaktan alınacak 12 bayta kadar veriyi gösterir.

Ayrıca Bakınız

To Top