1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 07:12:18 +01:00
Files
archived-doc-tr/reference/sockets/functions/socket-recv.xml
2022-11-17 16:43:57 +03:00

254 lines
7.4 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14dc7c47365f2b71f6c907a5ba5bccf42534d5a9 Maintainer: nilgun Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recv">
<refnamediv>
<refname>socket_recv</refname>
<refpurpose>Bağlı bir soketten veri alır</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>false</type></type><methodname>socket_recv</methodname>
<methodparam><type>Socket</type><parameter>soket</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>null</type></type><parameter role="reference">tampon</parameter></methodparam>
<methodparam><type>int</type><parameter>uzunluk</parameter></methodparam>
<methodparam><type>int</type><parameter>seçenekler</parameter></methodparam>
</methodsynopsis>
<para>
<function>socket_recv</function> işlevi <parameter>soket</parameter> ile
belirtilen soketten <parameter>tampon</parameter> içindeki
<parameter>uzunluk</parameter> baytı okur. <function>socket_recv</function>
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.
</para>
<para>
<parameter>tampon</parameter> 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.
<function>socket_recv</function> tarafından <parameter>socket</parameter>
soketinden okunan veri <parameter>tampon</parameter>'a konarak döndürülür.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>soket</parameter></term>
<listitem>
<para>
<function>socket_create</function> ile önceden oluşturulmuş geçerli bir
<classname>Socket</classname> örneği.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tampon</parameter></term>
<listitem>
<para>
Verinin alınacağı değişken burada belirtilir. Bir hata oluşursa,
bağlantı kesilirse veya alınacak bir veri yoksa
<parameter>tampon</parameter>'dan &null; döner.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>uzunluk</parameter></term>
<listitem>
<para>
Okunacak azami bayt sayısını belirler.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>seçenekler</parameter></term>
<listitem>
<para>
Aşağıdaki seçeneklerin bitsel VEYAlanmış bir birleşimi.
</para>
<table>
<title>Olası <parameter>seçenekler</parameter></title>
<tgroup cols="2">
<tbody>
<row>
<entry><constant>MSG_OOB</constant></entry>
<entry>
Band dışı veri gönderilir.
</entry>
</row>
<row>
<entry><constant>MSG_EOR</constant></entry>
<entry>
Bir kayıt imi belirtir. Gönderilen veri kaydın tamamlanmasını
sağlar.
</entry>
</row>
<row>
<entry><constant>MSG_EOF</constant></entry>
<entry>
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.
</entry>
</row>
<row>
<entry><constant>MSG_DONTROUTE</constant></entry>
<entry>
Yönlendirme es geçilip doğrudan arabirim kullanılır.
</entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Bir hata oluşmuşsa &false; yoksa alınan bayt sayısını döndürür. Oluşan
hatanın kodu <function>socket_last_error</function> ile açıklaması ise, elde
edilen hata kodu <function>socket_strerror</function> işlevine aktarılarak
alınabilir.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&sockets.changelog.socket-param;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>socket_recv</function> örneği</title>
<para>
Bu örnek, <xref linkend="sockets.examples" /> arasında <function>socket_recv</function> kullanan ilk örneğin yeniden yazılmışıdır.
</para>
<programlisting role="php">
<![CDATA[
<?php
error_reporting(E_ALL);
echo "<h2>TCP/IP Bağlantısı</h2>\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";
?>
]]>
</programlisting>
<para>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
</para>
<screen>
<![CDATA[
<h2>TCP/IP Bağlantısı</h2>
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.
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->