【发布时间】:2017-05-09 17:16:01
【问题描述】:
我不确定如何在 php 中为流式套接字的 tcp 代理配置流上下文参数。我找到并测试了以下代码,但它不适用于流套接字。
$context = stream_context_create(
array(
'http'=>array(
'proxy'=> 'tcp://'.$proxy,
)
)
);
$srvHandle = stream_socket_client("tcp://{$this->server}", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
if ($srvHandle === false)
$this->LogError("failed to connect with host website, check your network connection.");
stream_set_blocking($srvHandle, true);
stream_socket_enable_crypto($srvHandle, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
stream_set_blocking($srvHandle, false);
但上下文适用于 file_get_contents 函数。
$context = stream_context_create(
array(
/*
'socket' => array(
'bindto' => $proxy,
)
*/
'http'=>array(
'proxy'=> 'tcp://'.$proxy,
"request_fulluri" => TRUE,
),
"ssl" => array(
"SNI_enabled" => FALSE,
)
)
);
$result = file_get_contents("http://api.ipify.org?format=json", false, $context);
所以我可以知道仅适用于 http 协议的上下文。
如何配置tcp流套接字的上下文参数数组?
【问题讨论】: