私のサーバーには複数のIPアドレスがあり、このコードを使用してIPをストリームソケットクライアントにバインドします。正常に動作します。しかし、いつか私はこの警告を受け取ります:
stream_socket_client():無効なIPアドレス:
PHP 5.3.3を使用していて、サーバーでCentOS5.xを実行しています。
$opts = array(
'socket' => array(
'bindto' => '1.1.1.1:0',
),
);
// create the context...
$context = stream_context_create($opts);
$fp = @stream_socket_client ( $link, $errno, $errstr, 120, STREAM_CLIENT_CONNECT, $context);
この警告を回避する方法を教えてください。どうもありがとうございます!!!
アップデート
以下のコメントで要求されたコード:
if (function_exists('stream_context_create')
&& function_exists('stream_socket_client')
) {
$socket_options = array('socket' => array('bindto' => $ip .':0'));
$socket_context = stream_context_create($socket_options);
$this->smtp_conn = stream_socket_client(
"$host:$port",
$errno,
$errstr,
30,
STREAM_CLIENT_CONNECT,
$socket_context
);
} else {
$this->smtp_conn = @fsockopen($host, $port, $errno, $errstr, $tval);
}