File: socket-listen.xml

package info (click to toggle)
php-doc 20250827~git.abe740d%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 71,968 kB
  • sloc: xml: 985,760; php: 25,504; javascript: 671; sh: 177; makefile: 37
file content (130 lines) | stat: -rw-r--r-- 4,146 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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.socket-listen" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>socket_listen</refname>
  <refpurpose>Listens for a connection on a socket</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>socket_listen</methodname>
   <methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>backlog</parameter><initializer>0</initializer></methodparam>
  </methodsynopsis>
  <para>
   After the socket <parameter>socket</parameter> has been created
   using <function>socket_create</function> and bound to a name with
   <function>socket_bind</function>, it may be told to listen for incoming
   connections on <parameter>socket</parameter>.
  </para>
  <para>
   <function>socket_listen</function> is applicable only to sockets of
   type <constant>SOCK_STREAM</constant> or
   <constant>SOCK_SEQPACKET</constant>.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>socket</parameter></term>
     <listitem>
      <para>
       A <classname>Socket</classname> instance created with <function>socket_create</function>
       or <function>socket_addrinfo_bind</function>
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>backlog</parameter></term>
     <listitem>
      <para>
       A maximum of <parameter>backlog</parameter> incoming connections will be
       queued for processing. If a connection request arrives with the queue
       full the client may receive an error with an indication of
       <literal>ECONNREFUSED</literal>, or, if the underlying protocol supports
       retransmission, the request may be ignored so that retries may succeed.
      </para>
      <note>
       <para>
        The maximum number passed to the <parameter>backlog</parameter>
        parameter highly depends on the underlying platform. On Linux, it is
        silently truncated to <constant>SOMAXCONN</constant>. On win32, if
        passed <constant>SOMAXCONN</constant>, the underlying service provider
        responsible for the socket will set the backlog to a maximum
        <emphasis>reasonable</emphasis> value. There is no standard provision to
        find out the actual backlog value on this platform.
       </para>
      </note>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success; The error code can be retrieved with
   <function>socket_last_error</function>. This code may be passed to
   <function>socket_strerror</function> to get a textual explanation of the
   error.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     &sockets.changelog.socket-param;
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>socket_accept</function></member>
    <member><function>socket_bind</function></member>
    <member><function>socket_connect</function></member>
    <member><function>socket_create</function></member>
    <member><function>socket_strerror</function></member>
    <member><function>socket_addrinfo_bind</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
-->