php-doc-en/appendices/transports.xml

187 lines
6.2 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<appendix id="transports">
<title>List of Supported Socket Transports</title>
<para>
The following is a list of the various URL style socket transports
that PHP has built-in for use with the streams based socket
functions such as <function>fsockopen</function>, and
<function>stream_socket_client</function>. These transports do
<emphasis>not</emphasis> apply to the
<link linkend="ref.sockets">Sockets Extension</link>.
</para>
<para>
For a list of transports installed in your version of
<literal>PHP</literal> use <function>stream_get_transports</function>.
</para>
<section id="transports.inet">
<title>Internet Domain: TCP, UDP, and SSL</title>
<simpara>PHP 3, PHP 4. <filename>ssl://</filename> since PHP 4.3</simpara>
<note>
<simpara>
If no transport is specified, <literal>tcp://</literal> will be assumed.
</simpara>
</note>
<itemizedlist>
<listitem><simpara><literal>127.0.0.1</literal></simpara></listitem>
<listitem><simpara><literal>fe80::1</literal></simpara></listitem>
<listitem><simpara><literal>www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>tcp://127.0.0.1</literal></simpara></listitem>
<listitem><simpara><literal>tcp://fe80::1</literal></simpara></listitem>
<listitem><simpara><literal>tcp://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>udp://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>ssl://www.example.com</literal></simpara></listitem>
</itemizedlist>
<simpara>
Internet Domain sockets expect a port number in addition
to a target address. In the case of <function>fsockopen</function>
this is specified in a second parameter and therefore does
not impact the formatting of transport url. With
<function>stream_socket_client</function> and related functions
as with traditional URLs however, the port number is speicified
as a suffix of the transport URL delimited by a colon.
</simpara>
<itemizedlist>
<listitem><simpara><literal>tcp://127.0.0.1:80</literal></simpara></listitem>
<listitem><simpara><literal>tcp://[fe80::1]:80</literal></simpara></listitem>
<listitem><simpara><literal>tcp://www.example.com:80</literal></simpara></listitem>
</itemizedlist>
<note>
<title>IPv6 numeric addresses with port numbers</title>
<simpara>
In the second example above, while the IPv4 and hostname
examples are left untouched apart from the addition of
their colon and portnumber, the IPv6 address is wrapped in
square brackets: <literal>[fe80::1]</literal>. This is to
distinguish between the colons used in an IPv6 address and
the colon used to delimit the portnumber.
</simpara>
</note>
<simpara>
The <literal>ssl://</literal> transport (available only when
openssl support is compiled into PHP) is an extension of the
<literal>tcp://</literal> transport which includes SSL encryption.
</simpara>
<para>
<table>
<title>Context options (as of <literal>PHP 4.3.2</literal>)</title>
<tgroup cols="4">
<thead>
<row>
<entry>Name</entry>
<entry>Usage</entry>
<entry>Default</entry>
<entry>Transport</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>verify_peer</literal></entry>
<entry>
&true; or &false;.
Require verification of SSL certificate used.
</entry>
<entry>&false;</entry>
<entry><literal>ssl://</literal></entry>
</row>
<row>
<entry><literal>cafile</literal></entry>
<entry>
Location of Certificate Authority file on local filesystem
which should be used with the <literal>verify_peer</literal>
context option to authenticate the identity of the remote peer.
</entry>
<entry></entry>
<entry><literal>ssl://</literal></entry>
</row>
<row>
<entry><literal>local_cert</literal></entry>
<entry>
Path to local certificate file on filesystem. It must be a PEM
encoded file which contains your certificate and private key.
It can optionally contain the certificate chain of issuers.
</entry>
<entry></entry>
<entry><literal>ssl://</literal></entry>
</row>
<row>
<entry><literal>passphrase</literal></entry>
<entry>
Passphrase with which your <literal>local_cert</literal> file
was encoded.
</entry>
<entry></entry>
</row>
<row>
<entry><literal>cn_match</literal></entry>
<entry>
Common Name we are expecting. PHP will perform limited wildcard
matching. If the Common Name does not match this, the connection
attempt will fail.
</entry>
<entry></entry>
<entry><literal>ssl://</literal></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</section>
<section id="transports.unix">
<title>Unix Domain: UNIX and UDG</title>
<simpara>
<literal>unix://</literal> since <literal>PHP 3</literal>,
<literal>udg://</literal> since <literal>PHP 5</literal>
</simpara>
<itemizedlist>
<listitem><simpara><literal>unix:///tmp/mysock</literal></simpara></listitem>
<listitem><simpara><literal>udg:///tmp/mysock</literal></simpara></listitem>
</itemizedlist>
<simpara>
<literal>unix://</literal> provides access to a socket stream
connection in the unix domain. <literal>udg://</literal> provides
an alternate transport to a unix domain socket using the user datagram
protocol.
</simpara>
<simpara>
Unix Domain sockets, unlike Internet Domain sockets, do not expect
a port number. In the case of <function>fsockopen</function> the
<parameter>portno</parameter> parameter should be set to 0.
</simpara>
</section>
</appendix>
<!-- 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:"../../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
-->