socket_recv Bağlı bir soketten veri alır &reftitle.description; intfalsesocket_recv Socketsoket stringnulltampon intuzunluk intseçenekler socket_recv işlevi soket ile belirtilen soketten tampon içindeki uzunluk baytı okur. socket_recv ayrıca, bağlantılı soketlerden veri toplama için de kullanılır. Buna ek olarak işlevin davranışlarında değişiklik yapmak için bir veya daha fazla sayıda seçenek belirtilebilir. tampon gönderimli aktarılır, dolayısıyla işlevin bağımsız değişkenleri arasında bir değişken olarak yer almalıdır. socket_recv tarafından socket soketinden okunan veri tampon'a konarak döndürülür. &reftitle.parameters; soket socket_create ile önceden oluşturulmuş geçerli bir Socket örneği. tampon Verinin alınacağı değişken burada belirtilir. Bir hata oluşursa, bağlantı kesilirse veya alınacak bir veri yoksa tampon'dan &null; döner. uzunluk Okunacak azami bayt sayısını belirler. seçenekler Aşağıdaki seçeneklerin bitsel VEYAlanmış bir birleşimi. Olası <parameter>seçenekler</parameter> MSG_OOB Band dışı veri gönderilir. MSG_EOR Bir kayıt imi belirtir. Gönderilen veri kaydın tamamlanmasını sağlar. MSG_EOF Soketin gönderici tarafı kapatılır ve gönderilen verinin sonuna bununla ilgili bir bildirim yerleştirilir. Gönderilen veri aktarımın tamamlanmasını sağlar. MSG_DONTROUTE Yönlendirme es geçilip doğrudan arabirim kullanılır.
&reftitle.returnvalues; Bir hata oluşmuşsa &false; yoksa alınan bayt sayısını döndürür. Oluşan hatanın kodu socket_last_error ile açıklaması ise, elde edilen hata kodu socket_strerror işlevine aktarılarak alınabilir. &reftitle.changelog; &Version; &Description; &sockets.changelog.socket-param; &reftitle.examples; - <function>socket_recv</function> örneği Bu örnek, arasında socket_recv kullanan ilk örneğin yeniden yazılmışıdır. TCP/IP Bağlantısı\n"; /* HTTP hizmeti için portu öğrenelim. */ $service_port = getservbyname('www', 'tcp'); /* Hedef konağın IP adresini alalım. */ $address = gethostbyname('www.example.com'); /* Bir TCP/IP soketi oluşturalım. */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() başısız oldu: sebep: " . socket_strerror(socket_last_error()) . "\n"; } else { echo "OK.\n"; } echo "'$service_port' portundun '$address' adresine bağlanmaya çalışılıyor..."; $result = socket_connect($socket, $address, $service_port); if ($result === false) { echo "socket_connect() başısız oldu:\nSebep: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"; } else { echo "OK.\n"; } $in = "HEAD / HTTP/1.1\r\n"; $in .= "Host: www.example.com\r\n"; $in .= "Connection: Close\r\n\r\n"; $out = ''; echo "HTTP HEAD isteğini gönderelim..."; socket_write($socket, $in, strlen($in)); echo "OK.\n"; echo "Yanıtı okuyalım:\n\n"; $buf = 'Bu bir veri tamponu verisidir.'; if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) { echo "Read $bytes bytes from socket_recv(). Closing socket..."; } else { echo "socket_recv() failed; reason: " . socket_strerror(socket_last_error($socket)) . "\n"; } socket_close($socket); echo $buf . "\n"; echo "OK.\n\n"; ?> ]]> Yukarıdaki örnek şuna benzer bir çıktı üretir: TCP/IP Bağlantısı OK. '80' portundan '208.77.188.166' adresine bağlanmaya çalışılıyor...OK. HTTP HEAD isteği gönderiliyor...OK. Okunan yanıt: Read 123 bytes from socket_recv(). Closing socket...HTTP/1.1 200 OK Date: Mon, 14 Sep 2009 08:56:36 GMT Server: Apache/2.2.3 (Red Hat) Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT ETag: "b80f4-1b6-80bfd280" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 OK. ]]>