1

我的服务器有多个 IP 地址,我使用此代码将 IP 绑定到流套接字客户端。它工作正常。但有时我收到这个警告:

stream_socket_client():IP 地址无效:

我正在使用 PHP 5.3.3 并且我的服务器正在运行 CentOS 5.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 回答