File: transports.xml

package info (click to toggle)
php-doc 20140201-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 74,084 kB
  • ctags: 4,040
  • sloc: xml: 998,137; php: 20,812; cpp: 500; sh: 177; makefile: 63; awk: 28
file content (141 lines) | stat: -rw-r--r-- 5,425 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 297557 $ -->
<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> &amp; <literal>tls://</literal> since PHP 4.3.0
   <literal>sslv2://</literal> &amp; <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
-->