-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathsocket-set-nonblock.xml
127 lines (119 loc) · 3.43 KB
/
socket-set-nonblock.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e50e79746736dbdfbabe9bd3566793b3ddf38f58 Maintainer: conni Status: ready -->
<refentry xml:id="function.socket-set-nonblock" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>socket_set_nonblock</refname>
<refpurpose>Setzt den nonblocking-Modus für den Dateideskriptor fd</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>socket_set_nonblock</methodname>
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
</methodsynopsis>
<para>
Die Funktion <function>socket_set_nonblock</function> setzt das Flag
<constant>O_NONBLOCK</constant> für den Socket <parameter>socket</parameter>.
</para>
<para>
Wenn eine Operation (etwa empfangen, senden, verbinden, akzeptieren, ...)
an einem nicht-blockierenden Socket ausgeführt wird, wird die Ausführung
des Skripts so lange nicht unterbrochen, bis es ein Signal erhält oder die
Operation ausgeführt ist. Wenn allerdings die Operation zu einer
Blockierung führen würde, schlägt die aufgerufene Funktion fehl.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>socket</parameter></term>
<listitem>
<para>
Eine <classname>Socket</classname>-Instanz, die mit
<function>socket_create</function> oder
<function>socket_accept</function> erzeugt wurde.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</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="examples">
&reftitle.examples;
<para>
<example>
<title><function>socket_set_nonblock</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);
socket_accept($socket);
?>
]]>
</programlisting>
<para>
In diesem Beispiel wird ein Socket für alle Schnittstellen erzeugt, der
den Port 1223 abhört und der in den <constant>O_NONBLOCK</constant>-Modus
versetzt wird. <function>socket_accept</function> schlägt sofort fehl, es
sei denn, es gibt exakt in diesem Moment eine wartende Verbindung.
</para>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_set_block</function></member>
<member><function>socket_set_option</function></member>
<member><function>stream_set_blocking</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
-->