-
Notifications
You must be signed in to change notification settings - Fork 103
/
socket-getpeername.xml
136 lines (129 loc) · 4.6 KB
/
socket-getpeername.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5eaa3458d57434d0ce08207726a7d25df2994c6d Maintainer: songmeifeng Status: ready -->
<!-- CREDITS: Luffy -->
<refentry xml:id="function.socket-getpeername" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>socket_getpeername</refname>
<refpurpose>获取套接字远端名字</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>socket_getpeername</methodname>
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
<methodparam><type>string</type><parameter role="reference">address</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">port</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
获取套接字远端名字,返回主机名和端口号或是 Unix 文件系统路径,具体取决于套接字类型。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>socket</parameter></term>
<listitem>
<para>
由 <function>socket_create</function> 或 <function>socket_accept</function> 创建的 <classname>Socket</classname> 实例。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>address</parameter></term>
<listitem>
<para>
如果给定套接字的类型是 <constant>AF_INET</constant>
或 <constant>AF_INET6</constant>,<function>socket_getpeername</function>
将在参数 <parameter>address</parameter> 上返回对端(远端) <emphasis>IP 地址</emphasis>
(例如:<literal>127.0.0.1</literal> 或 <literal>fe80::1</literal>),如果存在端口号,也将关联到 <parameter>port</parameter> 参数。
</para>
<para>
如果给定套接字的类型是 <constant>AF_UNIX</constant>,<function>socket_getpeername</function>
将在 <parameter>address</parameter> 参数中返回 Unix 文件系统路径(例如:<literal>/var/run/daemon.sock</literal>)。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
如果提供此参数,它将保存 <parameter>address</parameter> 关联的端口号。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success; 如果套接字类型不是 <constant>AF_INET</constant>、<constant>AF_INET6</constant>
或 <constant>AF_UNIX</constant> 中的任意一个,<function>socket_getpeername</function>
也可能返回 &false;,在此情况下,套接字最后的错误码<emphasis>不会</emphasis>更新。
</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="notes">
&reftitle.notes;
<note>
<para>
<function>socket_getpeername</function> 不应该用于 <function>socket_accept</function>
创建的 <constant>AF_UNIX</constant> 类型套接字。只有使用 <function>socket_connect</function>
创建的套接字或调用过 <function>socket_bind</function> 的服务端套接字会返回有意义的值。
</para>
</note>
<note>
<para>
为了让 <function>socket_getpeername</function> 返回有意义的值,套接字使用 “peer“ 的概念是有意义的(the socket it is applied upon must of course be one for which the concept of "peer" makes sense)。
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_getsockname</function></member>
<member><function>socket_last_error</function></member>
<member><function>socket_strerror</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
-->