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-create-pair.xml
2021-06-13 21:23:34 +03:00

242 lines
6.6 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-create-pair">
<refnamediv>
<refname>socket_create_pair</refname>
<refpurpose>Ayrılması olanaksız bir soket çifti oluşturur ve bunları
bir dizide saklar</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>socket_create_pair</methodname>
<methodparam><type>int</type><parameter>aile</parameter></methodparam>
<methodparam><type>int</type><parameter>tür</parameter></methodparam>
<methodparam><type>int</type><parameter>protokol</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">çift</parameter></methodparam>
</methodsynopsis>
<para>
<function>socket_create_pair</function> iki tane bağlı ve ayrılması
olanaksız soket oluşturur ve bunları <parameter>çift</parameter> dizisine
yerleştirir. Bu işlev genellikle süreçler arası iletişim için kullanılır.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>aile</parameter></term>
<listitem>
<para>
Soket tarafından kullanılacak protokol ailesi. Tam liste için
<function>socket_create</function> işlevine bakın.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tür</parameter></term>
<listitem>
<para>
Soket tarafından kullanılacak iletişimin türü. Tam liste için
<function>socket_create</function> işlevine bakın.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>protokol</parameter></term>
<listitem>
<para>
Soketten dönen iletişimi kullanacak aileye özgü protokol. Bu değer
protol ismi belirtilerek <function>getprotobyname</function> ile
alınabilir. İstenen protokol bir TCP veya UDP protokolü ise
<constant>SOL_TCP</constant> veya <constant>SOL_UDP</constant> sabiti
değer olarak kullanılabilir.
</para>
<para>
Desteklenen protokollerin listesi için
<function>socket_create</function> işlevine bakın.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>çift</parameter></term>
<listitem>
<para>
İki <classname>Socket</classname> örneğinin yerleştirileceği dizi.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>çift</parameter> dizisine artık
<classname>Socket</classname> örnekleri yerleştiriliyor; evvelce dizi
elemanları <type>resource</type> türünde olabiliyordu.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>socket_create_pair</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$sockets = array();
/* Windows'ta AF_INET kullanmak lazım */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);
/* Soket çiftini al */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false)
{
echo "socket_create_pair başarısız oldu. Sebep: ".
socket_strerror(socket_last_error());
}
/* Veri gönderip al */
if (socket_write($sockets[0], "ABCdnm123\n", strlen("ABCdnm123\n")) === false)
{
echo "socket_write() başarısız oldu. Sebep: ".
socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"),
PHP_BINARY_READ)) === false)
{
echo "socket_read() başarısız oldu. Sebep: ".
socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);
/* Soketleri kapat */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title> -<function>socket_create_pair</function> IPC örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$ary = array();
$dizgebir = 'Ebeveynin iletisi.';
$dizgeiki = 'Çocuğun iletisi.';
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false)
{
echo "socket_create_pair() başarısız oldu. Sebep: ".
socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1)
{
echo 'Süreç çatallanamadı.';
}
elseif ($pid)
{
/* ebeveyn */
socket_close($ary[0]);
if (socket_write($ary[1], $dizgebir, strlen($dizgebir)) === false)
{
echo "socket_write() başarısız oldu. Sebep: ".
socket_strerror(socket_last_error($ary[1]));
}
if (socket_read($ary[1], strlen($dizgeiki), PHP_BINARY_READ) == $dizgeiki)
{
echo "$dizgeiki alındı\n";
}
socket_close($ary[1]);
}
else
{
/* çocuk */
socket_close($ary[1]);
if (socket_write($ary[0], $dizgeiki, strlen($dizgeiki)) === false)
{
echo "socket_write() başarısız oldu. Sebep: ".
socket_strerror(socket_last_error($ary[0]));
}
if (socket_read($ary[0], strlen($dizgebir), PHP_BINARY_READ) == $dizgebir)
{
echo "$dizgebir alındı\n";
}
socket_close($ary[0]);
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_create</function></member>
<member><function>socket_create_listen</function></member>
<member><function>socket_bind</function></member>
<member><function>socket_listen</function></member>
<member><function>socket_last_error</function></member>
<member><function>socket_strerror</function></member>
</simplelist>
</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
-->