1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-24 07:02:08 +01:00
Files
archived-doc-ja/reference/stream/functions/stream-socket-pair.xml
2020-12-27 04:34:12 +00:00

157 lines
4.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"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="function.stream-socket-pair" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>stream_socket_pair</refname>
<refpurpose>
接続された、区別できないソケットストリームの組を作成する
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>false</type></type><methodname>stream_socket_pair</methodname>
<methodparam><type>int</type><parameter>domain</parameter></methodparam>
<methodparam><type>int</type><parameter>type</parameter></methodparam>
<methodparam><type>int</type><parameter>protocol</parameter></methodparam>
</methodsynopsis>
<para>
<function>stream_socket_pair</function> は、互いに接続されており区別できない
ソケットストリームの組を作成します。この関数は、一般に IPC
Inter-Process Communication: プロセス間通信)で使用します。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>domain</parameter></term>
<listitem>
<para>
使用するプロトコルファミリー。<constant>STREAM_PF_INET</constant>
<constant>STREAM_PF_INET6</constant> あるいは
<constant>STREAM_PF_UNIX</constant>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
使用する接続の型。
<constant>STREAM_SOCK_DGRAM</constant>
<constant>STREAM_SOCK_RAW</constant>
<constant>STREAM_SOCK_RDM</constant>
<constant>STREAM_SOCK_SEQPACKET</constant> あるいは
<constant>STREAM_SOCK_STREAM</constant>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>protocol</parameter></term>
<listitem>
<para>
使用するプロトコル。<constant>STREAM_IPPROTO_ICMP</constant>
<constant>STREAM_IPPROTO_IP</constant>
<constant>STREAM_IPPROTO_RAW</constant>
<constant>STREAM_IPPROTO_TCP</constant> あるいは
<constant>STREAM_IPPROTO_UDP</constant>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<note>
<simpara>
各定数についての詳細な情報は
<link linkend="stream.constants">ストリーム定数の一覧</link>
を参照ください。
</simpara>
</note>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
成功した場合に 2 つのソケットリソースの配列、失敗した場合に &false; を返します。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>stream_socket_pair</function> の例</title>
<para>
この例では、プロセス間通信に
<function>stream_socket_pair</function> を使用する基本的な方法を示します。
</para>
<programlisting role="php">
<![CDATA[
<?php
$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid = pcntl_fork();
if ($pid == -1) {
die('フォークできません');
} else if ($pid) {
/* 親プロセス */
fclose($sockets[0]);
fwrite($sockets[1], "子プロセスの PID: $pid\n");
echo fgets($sockets[1]);
fclose($sockets[1]);
} else {
/* 子プロセス */
fclose($sockets[1]);
fwrite($sockets[0], "子プロセスからのメッセージ\n");
echo fgets($sockets[0]);
fclose($sockets[0]);
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
子プロセスの PID: 1378
子プロセスからのメッセージ
]]>
</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
-->