首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_enable_crypto - 在已连接的套接字上打开/关闭加密

描述

代码语言:javascript
复制
mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

启用或禁用流上的加密。

一旦建立了加密设置,就可以通过传递TRUEFALSEenable参数中动态地打开和关闭加密。

参数

stream

流资源。

enable

启用/禁用流上的加密。

crypto_type

在流上设置加密。有效的方法是

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

如果省略,crypto_type则将使用流的SSL上下文中的上下文选项。

session_stream

使用来自设置的流播种session_stream

返回值

如果协商失败返回FALSE,成功返回TRUE;如果没有足够的数据,则返回0,并且应该再次尝试(仅适用于非阻塞套接字)。

Changelog

版本

描述

5.6.0

介绍STREAM_CRYPTO_METHOD_ANY_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,STREAM_CRYPTO_METHOD_ANY_SERVER,STREAM_CRYPTO_METHOD_TLSv1_0_SERVER,STREAM_CRYPTO_METHOD_TLSv1_1_SERVER,STREAM_CRYPTO_METHOD_TLSv1_2_SERVER。

5.6.0

crypto_type现在是可选的。

示例

示例#1 stream_socket_enable_crypto()示例

代码语言:javascript
复制
<?php
$fp?=?stream_socket_client("tcp://myproto.example.com:31337",?$errno,?$errstr,?30);
if?(!$fp)?{
????die("Unable?to?connect:?$errstr?($errno)");
}

/*?Turn?on?encryption?for?login?phase?*/
stream_socket_enable_crypto($fp,?true,?STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp,?"USER?god\r\n");
fwrite($fp,?"PASS?secret\r\n");

/*?Turn?off?encryption?for?the?rest?*/
stream_socket_enable_crypto($fp,?false);

while?($motd?=?fgets($fp))?{
????echo?$motd;
}

fclose($fp);
?>

上面的例子会输出类似于:

另请参阅

← stream_socket_client

stream_socket_get_name →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com