-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathsocket-connect.xml
133 lines (127 loc) · 4.31 KB
/
socket-connect.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e58f2f64751dc0d9e0da953bac8003469f923af0 Maintainer: zhoumengkang Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-connect">
<refnamediv>
<refname>socket_connect</refname>
<refpurpose>开启一个套接字连接</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>socket_connect</methodname>
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
<methodparam><type>string</type><parameter>address</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>port</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
使用 <classname>Socket</classname> 实例 <parameter>socket</parameter> 发起到
<parameter>address</parameter> 的连接,该实例必须要求是用
<function>socket_create</function> 创建的 <classname>Socket</classname> 有效的套接字资源实例。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>socket</parameter></term>
<listitem>
<para>
由 <function>socket_create</function> 创建的
<classname>Socket</classname> 实例。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>address</parameter></term>
<listitem>
<para>
如果参数 <parameter>socket</parameter> 是 <constant>AF_INET</constant>,那么参数
<parameter>address</parameter> 则可以是一个点分四组表示法(例如 <literal>127.0.0.1</literal> ) 的 IPv4 地址;如果支持
IPv6 并且 <parameter>socket</parameter> 是 <constant>AF_INET6</constant>,那么 <parameter>address</parameter>
也可以是有效的 IPv6 地址(例如 <literal>::1</literal>);如果套接字类型为 <constant>AF_UNIX</constant> ,那么
<parameter>address</parameter> 也可以是一个 Unix 套接字。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
参数 <parameter>port</parameter> 仅仅用于 <constant>AF_INET</constant> 和 <constant>AF_INET6</constant>
套接字连接的时候,并且是在此情况下是需要强制说明连接对应的远程服务器上的端口号。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success; 错误代码会传入
<function>socket_last_error</function> ,如果将此参数传入
<function>socket_strerror</function> 则可以得到错误的文字说明。
</para>
<note>
<para>
如果套接字是非堵塞的,此函数将返回 &false; 并产生一个错误 <literal>Operation now in progress</literal>。
</para>
</note>
</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;
<row>
<entry>8.0.0</entry>
<entry>
<parameter>port</parameter> 允许为空。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>socket_bind</function></member>
<member><function>socket_listen</function></member>
<member><function>socket_create</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
-->