stream_socket_enable_crypto
在已连接的套接字上打开/关闭加密
函数名称:stream_socket_enable_crypto()
适用版本:PHP 5 >= 5.1.0, PHP 7
函数描述:stream_socket_enable_crypto()函数用于在一个已经建立的socket连接上启用或禁用加密。
语法:bool stream_socket_enable_crypto ( resource $stream , bool $enable , int $crypto_type [, resource $session_stream ] )
参数:
返回值:如果成功启用或禁用加密,则返回true;否则返回false。
示例:
// 创建一个socket连接
$socket = stream_socket_client('tcp://www.example.com:443', $errno, $errstr, 30);
// 启用加密
if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
echo "加密已成功启用!\n";
} else {
echo "无法启用加密!\n";
}
// 发送加密的数据
fwrite($socket, "Hello, encrypted world!");
// 关闭加密
stream_socket_enable_crypto($socket, false);
// 发送非加密的数据
fwrite($socket, "Hello, world!");
// 关闭socket连接
fclose($socket);
在上面的示例中,我们首先使用stream_socket_client()函数创建一个与www.example.com的443端口的TCP连接。然后,我们使用stream_socket_enable_crypto()函数启用加密,并指定加密类型为TLS客户端加密。如果加密成功启用,则输出"加密已成功启用!",否则输出"无法启用加密!"。接下来,我们使用fwrite()函数发送加密的数据。然后,我们使用stream_socket_enable_crypto()函数禁用加密。最后,我们使用fwrite()函数发送非加密的数据,并关闭socket连接。