1

私のサーバーには複数の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);
}
4

1 に答える 1

0

これは無効な IP アドレスです...正しいポートも必要です。

ローカル マシンに接続している場合、IP は 127.0.0.1 になります。

于 2012-12-18T17:02:48.307 に答える