2012-02-22 14 views
0

最初はこれが奇妙な要求のように見えるかもしれませんが、これを望む理由があります。その理由は、curl_multi_init()経由の非同期並列キューイングです。SMTPに接続するためのfsockopen()のようなPHPでCURLを使用していますか?

現在、私はfsockopen('mxhost.com',25,$errno, $errstr, $timeout)を使用しており、SMTPコマンドを送信して電子メールアドレスを一括検証しています。

多くの異なるホストのために、非常に遅くなるので、私は物事をスピードアップするために別のホストに並列接続を開きたいと思います。私はこれを簡単に行う方法を見つけることができませんでした。ノンブロッキングの場合でも、stream_socket_client()がこれを行う方法がありますが、見つけられませんでした。 CURLと

、私はのような何かをする必要があると思う:

curl_setopt($ch, CURLOPT_URL, "telnet://mxhost.com:25"); 
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_TELNET); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $query."\r\n"); 

しかし、これがタイムアウトし続けます。これがTELNETプロトコルドライバが内部で行うものか、自分のコードでのエラーのためかどうかはわかりません。生のソケット接続を模倣する方法がありますか?

ありがとうございました!

答えて

0

通常のPHPストリーム関数を使用して、非ブロックとして設定することができます。同時に複数のファイルをオープンし、read/writeの準備ができているファイルを取得するにはstream_select()を使用します。

http://ca.php.net/manual/en/function.stream-set-blocking.php

関連する問題