If using Unix Sockets, and you want to use SO_PEERCRED, you can use the number 17 for the optname (and SOL_SOCKET for the level). The PID of the connecting process will be returned.
socket_get_option
(PHP 4 >= 4.3.0, PHP 5)
socket_get_option — Soketle ilgili bir seçeneğin değerini döndürür
Açıklama
Belirtilen soket için ismi
seçenek ile belirtilen seçeneğin değerini döndürür.
Değiştirgeler
-
soket -
socket_create() veya socket_accept() ile oluşturulmuş geçerli bir soket özkaynağı.
-
seviye -
Seçeneğin geçerli olacağı protokol seviyesi. Örneğin soket seviyesindeki seçenekleri almak için bu değiştirgede
SOL_SOCKETkullanılabilirdi.TCPgibi diğer seviyeler, seviyenin protokol numarası belirtilerek kullanılabilir. Protokol numaralarını getprotobyname() işleviyle alabilirsiniz. -
seçenek -
Olası soket seçenekleri Seçenek Açıklama Türü SO_DEBUGHata ayıklama bilgilerinin kaydelip kaydedilmeyeceğini belirtir. int SO_BROADCASTYayın iletilerinin aktarılılp aktarılmayacağını belirtir. int SO_REUSEADDRYerel adresin yeniden kullanılabilir olup olmadığını belirtir. int SO_KEEPALIVEBelirli aralıklarla ileti aktarımlarında bağlantının kalıcı olup olmayacağını belirtir. Eğer bağlı soket bu iletileri yanıtlamakta başarısız olursa bağlantı kopar ve sokete yazan sürece bir SIGPIPE sinyali gönderilir. int SO_LINGERVeri mevcut olduğunda socket_close() işlevinin bekletilip bekletilmeyeceğini belirtir. Öntanımlı olarak soket kapatılacağı zaman gönderilmemiş tüm veri gönderilmeye çalışılır. Soketin bağlantı yönelimli olduğu durumda socket_close() karşı ucun alındısını bekler.
Eğer l_onoff sıfırdan farklı ve l_linger sıfırsa gönderilmemiş tüm veri iptal edilir ve soketin bağlantı yönelimli olması durumunda karşı uca bir RST (sıfırla) gönderilir.
Diğer taraftan, l_onoff ve l_linger'in ikisi de sıfırdan farklıysa tüm veri gönderilinceye veya l_linger ile belirtilen süre dolana kadar socket_close() bekletilir. Soket engellenmeyen kipte ise socket_close() başarısız olup bir hata döndürür.
array. Dizi iki anahtar içerir: l_onoff ve l_linger. SO_OOBINLINESoketin band dışı veriyi hatta bırakıp bırakmayacağını belirtir. int SO_SNDBUFGönderim tamponunun boyunu belirtir. int SO_RCVBUFAlım tamponunun boyunu belirtir. int SO_ERRORHata durumu hakkında bilgi verip hata kodunu siler. int (socket_set_option() ile atanamayabilir.) SO_TYPESoketin türünü belirtir ( SOCK_STREAMgibi).int (socket_set_option() ile atanamayabilir.) SO_DONTROUTEGiden iletilerin standart yönlendirme oluşumlarını es geçip geçmeyeceğini belirtir. int SO_RCVLOWATSoket girdi işlemlerinde işlenecek en küçük bayt sayısını belirtir. int SO_RCVTIMEOSoket girdi işlemleri için zaman aşımı değerini belirtir. array. Dizi iki anahtar içerir: Zaman aşımının saniye parçası sec, mikrosaniye parçası usec anahtarına konur. SO_SNDTIMEOAkış denetiminin veri gönderimini engellemesi nedeniyle bir çıktı işlevinin bekletileceği azami süreyi belirtir. array. Dizi iki anahtar içerir: Zaman aşımının saniye parçası sec, mikrosaniye parçası usec anahtarına konur. SO_SNDLOWATSoket çıktı işlemlerinde işlenecek en küçük bayt sayısını belirtir. int TCP_NODELAYNagle TCP algoritmasının iptal edilmiş olup olmadığını belirtir. int
Dönen Değerler
Hata durumunda FALSE yoksa belirtilen seçeneğin değerini döndürür.
Örnekler
Örnek 1 - socket_get_option() örneği
<?php
$socket = socket_create_listen(1223);
$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);
var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 4.3.0 | İşleven ismi değişti. Evvelce socket_getopt() idi. |
Just 2 notes here:
- On UNIX, If SO_DEBUG is set, the php program needs an effective user id of 0.
- activating SO_OOBINLINE on a socket is equivalent to passing MSG_OOB flag to each recieving functions used with that socket (eg: socket_recv, socket_recvfrom).
