<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <appendix xml:id="transports" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> <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 PHP use <function>stream_get_transports</function>. </para> <!-- FIXME PHP_6 Mentioned PHP 6, but let's explore not hard coding PHP versions like this --> <section xml:id="transports.inet"> <title>Internet Domain: TCP, UDP, SSL, and TLS</title> <simpara> PHP 4, PHP 5. <literal>ssl://</literal> & <literal>tls://</literal> since PHP 4.3.0 <literal>sslv2://</literal> & <literal>sslv3://</literal> since PHP 5.0.2 </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> <listitem><simpara><literal>sslv2://www.example.com</literal></simpara></listitem> <listitem><simpara><literal>sslv3://www.example.com</literal></simpara></listitem> <listitem><simpara><literal>tls://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 specified 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> and <literal>tls://</literal> transports (available only when openssl support is compiled into PHP) are extensions of the <literal>tcp://</literal> transport which include SSL encryption. Since PHP 4.3.0 OpenSSL support must be statically compiled into PHP, since PHP 5.0.0 it may be compiled as a module or statically. </simpara> <simpara> <literal>ssl://</literal> will attempt to negotiate an SSL V2, or SSL V3 connection depending on the capabilities and preferences of the remote host. <literal>sslv2://</literal> and <literal>sslv3://</literal> will select the SSL V2 or SSL V3 protocol explicitly. </simpara> </section> <section xml:id="transports.unix"> <title>Unix Domain: Unix and UDG</title> <simpara> <literal>unix://</literal> and <literal>udg://</literal> (udg:// since PHP 5). </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:"~/.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 -->