PHP 7.4.9 Released!

socket_getpeername

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

socket_getpeernameBelirtilen soketin yerel tarafını sorgulayıp soket türüne göre ya bir konak/port çifti ya da bir Unix dosya yolu döndürür

Açıklama

socket_getpeername ( resource $soket , string &$adres [, int &$port ] ) : bool

Belirtilen soketin yerel tarafını sorgulayıp soket türüne göre ya bir konak/port çifti ya da bir Unix dosya yolu döndürür.

Değiştirgeler

soket

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

adres

Belirtilen soket AF_INET veya AF_INET6 türündeyse socket_getsockname() işlevi, bu değiştirgede bir IP adresi (127.0.0.1 veya fe80::1 gibi) ve port değiştirgesinde de belirtilmişse ilgili port numarasını döndürür.

Belirtilen soket AF_UNIX türündeyse bu değiştirgede (/var/run/daemon.sock gibi) bir Unix dosya yolu döner.

port

Belirtilmişse ilgili port değeri bu değiştirgeye konur.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner. Soket AF_INET, AF_INET6 veya AF_UNIX türünde değilse işlev FALSE döndürebilir, ancak böyle bir durumda son soket hata kodu güncellenmez.

Notlar

Bilginize:

socket_getpeername() işlevi socket_connect() ile oluşturulan AF_UNIX soketlerle kullanılmamalıdır. Sadece socket_accept() ile oluşturulan soketler ve socket_bind() çağrısından sonra bir birincil sunucu soketi için anlamlı bir değer döner.

Ayrıca Bakınız

  • socket_getsockname() - Belirtilen soketin yerel tarafını sorgulayıp soket türüne göre ya bir konak/port çifti ya da bir Unix dosya yolu döndürür
  • socket_last_error() - Soket üzerindeki son hatanın kodunu döndürür
  • socket_strerror() - Bir soket hatasıyla ilgili açıklamayı döndürür

add a note add a note

User Contributed Notes 2 notes

up
6
redph0enix at hotmail dot com
16 years ago
socket_getpeername will not work for UDP sockets. Instead, use socket_recvfrom - it provides the IP address and port of the source server - eg:

$size=socket_recvfrom($socket,$input,65535,0,$ipaddress,$port);
echo "Received [$input] ($size bytes) from IP $ipaddress Port $port\n";
up
2
Anonymous
4 years ago
The reason it won't work for UDP is that UDP is stateless; logically there are no peers other than at the time a packet is sent or received. Or more strictly, a UDP socket can interact with 0..N peers.
To Top