fsockopen
(PHP 4, PHP 5, PHP 7)
说明
$hostname
[, int $port
=
-1 [, int &$errno
[, string &$errstr
[, float $timeout
=
ini_get("default_socket_timeout") ]]]] )初始化一个套接字连接到指定主机(hostname
)。
PHP支持以下的套接字传输器类型列表 所支持的套接字传输器(Socket Transports)列表。也可以通过stream_get_transports()来获取套接字传输器支持类型。
默认情况下将以阻塞模式开启套接字连接。当然你可以通过stream_set_blocking()将它转换到非阻塞模式。
stream_socket_client()与之非常相似,而且提供了更加丰富的参数设置,包括非阻塞模式和提供上下文的的设置。
参数
hostname
-
如果安装了OpenSSL,那么你也许应该在你的主机名地址前面添加访问协议ssl://或者是tls://,从而可以使用基于TCP/IP协议的SSL或者TLS的客户端连接到远程主机。
port
-
端口号。如果对该参数传一个-1,则表示不使用端口,例如unix://。
errno
-
如果传入了该参数,holds the system level error number that occurred in the system-level connect() call。
如果
errno
的返回值为0,而且这个函数的返回值为FALSE
,那么这表明该错误发生在套接字连接(connect())调用之前,导致连接失败的原因最大的可能是初始化套接字的时候发生了错误。 errstr
-
错误信息将以字符串的信息返回。
timeout
-
设置连接的时限,单位为秒。
Note:
注意:如果你要对建立在套接字基础上的读写操作设置操作时间设置连接时限,请使用stream_set_timeout(),fsockopen()的连接时限(
timeout
)的参数仅仅在套接字连接的时候生效。
返回值
fsockopen()将返回一个文件句柄,之后可以被其他文件类函数调用(例如:fgets(),fgetss(),fwrite(),fclose()还有feof())。如果调用失败,将返回FALSE
。
错误/异常
如果主机(hostname
)不可访问,将会抛出一个警告级别(E_WARNING
)的错误提示。
更新日志
版本 | 说明 |
---|---|
4.3.0 | 在win32系统上增加了对时限设置(timeout )参数的支持。 |
4.3.0 | 在TCP/IP协议的基础上增加了SSL和TLS。 |