-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathsocket-recvfrom.xml
229 lines (220 loc) · 7.2 KB
/
socket-recvfrom.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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: nilgun Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-recvfrom">
<refnamediv>
<refname>socket_recvfrom</refname>
<refpurpose>Bağlantılı olsun olmasın bir soketten veri alır</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>false</type></type><methodname>socket_recvfrom</methodname>
<methodparam><type>Socket</type><parameter>soket</parameter></methodparam>
<methodparam><type>string</type><parameter role="reference">tmmpon</parameter></methodparam>
<methodparam><type>int</type><parameter>uzunluk</parameter></methodparam>
<methodparam><type>int</type><parameter>seçenekler</parameter></methodparam>
<methodparam><type>string</type><parameter role="reference">adres</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<function>socket_recvfrom</function> işlevi belirtilen
<parameter>soket</parameter> üzerinden <parameter>tampon</parameter>
tamponundan <parameter>uzunluk</parameter> baytlık veriyi
<parameter>adres</parameter>'teki <parameter>port</parameter>. porttan
alır. İşlev bağlantılı (tcp) ve bağlantısız (udp) soketlerle çalışabilir.
Ayrıca, bazı seçeneklerle işlevin davranışında değişiklik yapılabilir.
</para>
<para>
<parameter>isim</parameter> ve <parameter>port</parameter> gönderimli
aktarılmalıdır. Soket bağlantı yönelimli değilse <parameter>isim</parameter>
bağımsız değişkenine uzak konağın IP adresi veya Unix soketinin dosya yolu
atanacaktır. Soketin bağlantı yönelimli olması durumunda
<parameter>isim</parameter> &null;'dur. Bunun yanında, soketin bir
bağlantısız <constant>AF_INET</constant> veya <constant>AF_INET6</constant>
soket olması durumunda <parameter>port</parameter> uzak konağın port
numarasını içerecektir.
</para>
¬e.bin-safe;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>soket</parameter></term>
<listitem>
<para>
<function>socket_create</function> ile oluşturulmuş geçerli bir
<classname>Socket</classname> nesnesi.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tampon</parameter></term>
<listitem>
<para>
Alınan verinin yerleştirileceği tampon.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>uzunluk</parameter></term>
<listitem>
<para>
Uzak konaktan alınacak azami bayt sayısı.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>seçenekler</parameter></term>
<listitem>
<para>
Aşağıdaki değerlerin bitsel VEYAlanmış (|) bir birleşimi olabilir
</para>
<table>
<title>Olası <parameter>seçenekler</parameter></title>
<tgroup cols="2">
<thead>
<row>
<entry>Seçenek</entry>
<entry>Açıklama</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>MSG_OOB</constant></entry>
<entry>
Band dışı veri işlenir.
</entry>
</row>
<row>
<entry><constant>MSG_PEEK</constant></entry>
<entry>
Veri alım kuyruğunun başlangıcından alınırken kuyruktan silinmez.
</entry>
</row>
<row>
<entry><constant>MSG_WAITALL</constant></entry>
<entry>
<parameter>uzunluk</parameter> bayt alınıncaya kadar soket
baskılanır. Ancak, bir sinyal alınırsa veya uzak konak bağlantıyı
keserse işlev daha az veriyle dönebilir.
</entry>
</row>
<row>
<entry><constant>MSG_DONTWAIT</constant></entry>
<entry>
İşlev bekleme kipinde olsa bile bu seçenek işlevin beklemeden
dönmesine sebep olur.
</entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>adres</parameter></term>
<listitem>
<para>
Soket <constant>AF_UNIX</constant> türündeyse dosya yolu, bağlantısız
soketse uzak konağın IP adresi, bağlantı yönelimli bir soketse
&null;'dur.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
Sadece <constant>AF_INET</constant> ve <constant>AF_INET6</constant>
soketlere uygulanır ve verinin alındığı uzak portu belirtir. Soket
bağlantı yönelimli ise <parameter>port</parameter> &null; olacaktır.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>socket_recvfrom</function> işlevi alınan bayt sayısını döndürür.
Bir hata oluşmuşsa &false; döner. Hata kodu
<function>socket_last_error</function> işlevi ile alınabilir. Bu hata
kodunu <function>socket_strerror</function> işlevine aktararak hatayı
açıklayan dizgeyi alabilirsiniz.
</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_recvfrom</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);
$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);
echo "$from adresinin $port. portundan $buf bayt alındı" . PHP_EOL;
?>
]]>
</programlisting>
<para>
Bu örnek 127.0.0.1 adresindeki 1223. port üzerinde bir UDP portu
oluşturup uzak konaktan alınacak 12 bayta kadar veriyi gösterir.
</para>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_recv</function></member>
<member><function>socket_send</function></member>
<member><function>socket_sendto</function></member>
<member><function>socket_create</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
-->