这是我的剧本
<?php
$timeout = 10;
$target = "tls://testbed-epp.nominet.org.uk:700";
$result = stream_socket_client($target, $errno, $errstr, 30, STREAM_CLIENT_CONNECT);
if ($result === False) {
throw new Exception("Error connecting to $target: $errstr (code $errno)");
}
echo "Connected";
它会引发异常
Error connecting to tls://testbed-epp.nominet.org.uk:700: (code 0)
还有警告
WARNING: stream_socket_client(): Failed to enable crypto
同时运行
openssl s_client -connect testbed-epp.nominet.org.uk:700
在一个终端连接完美。
任何想法都将受到赞赏
答案 0 :(得分:1)
请改为尝试:
$result = stream_socket_client("testbed-epp.nominet.org.uk:700", $errno, $errstr);
编辑:你也可以通过 stream_socket_enable_crypto()函数设置安全连接,但是你应该注意它必须在套接字连接初始化后使用。
答案 1 :(得分:1)
好吧,我在我的apache服务器上测试了你的代码,它运行正常。你能检查一下你的apache配置吗?在配置中有一个名为"Registered Stream Socket Transports "
的参数。只需检查tls
是否存在作为值,否则还有其他一些问题,但它绝对不是您的脚本
答案 2 :(得分:0)
$timeout =- 10;
^----
您将$timeout
设为负10秒。例如你可以在它开始之前杀死连接尝试。