- 締切済み
SocketでPOPサーバーから受けた情報をWhile文で受け取れない
SocketでPOP3サーバーにアクセスして、コマンドを 送った際の戻り値を変数に代入したいのですが、 下記の方法でうまくいきません。 While(<Socket>) { push(@test,$_); } print"@test"; telnetを使ってそのPOP3サーバーにアクセスすると 正常にアクセスしてログイン後メール内容を見る ことができます。While文がうまく動作していない みたいなのですが・・・。 ブラウザがずっとアクセスしてて画面が表示されません。 WinXP, Apache, Perl5.8.4 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- cojirou
- ベストアンサー率50% (59/117)
もう見ていらっしゃらないかもしれませんが…。↓のURLは、 #1のURLのプログラムを参考にしたスクリプトです。 print S "USER $StrUsr\r\n"; print S "PASS $StrPsw\r\n"; の後に、 print <S> ."\n"; を付け加えると動きました。 しつこく失礼致しました。
- cojirou
- ベストアンサー率50% (59/117)
再度失礼致します。 私はperlでPOP3クライアントを作ったことがないので、 見当違いの意見だったようですね。申し訳ありません。 ご質問文の内容だけでは他の可能性を考えるのが難しいので、 よろしければ、スクリプトの他の部分と現在の動作結果を お教えいただけませんか? 私の勉強のためのお願いに近いので、お時間がありましたらで構いません。 ちなみに当方では以下のURLにあるスクリプトは動作確認できました。
- cojirou
- ベストアンサー率50% (59/117)
以下のURLを見ると、while文のループの中にループを抜ける条件があるので、 もしかしたらソレが足りないなどでしょうか…。 他にも、「perl POP3 socket」で検索すると参考になりそうなサイトがありましたので ご参照ください。 ご参考までに。
お礼
ありがとうございます。そのサイトも見たのですが、条件を入れてもうまく動作しませんでした。 あきらめてPHPでやってみます。 ありがとうございました。