2011-06-24 15 views
0

私は、次のサーバーから返されたデータの全体を受け取るようにPOE :: Filterを設定するにはどうすればよいですか?

my $filter = POE::Filter::Line->new(OutputLiteral => ''); 

my $wheel = POE::Wheel::ReadWrite->new(
    Handle  => $socket, 
    Filter  => $filter, 
    InputEvent => 'on_input', 
    ErrorEvent => 'on_error', 
    FlushedEvent => 'on_flush', 
); 

を試みたが、on_inputはARG0で個別に各ラインで数回呼ばれています。どうすればそれを一緒に得ることができますか? OutputLiteralを ''に設定すると、「行」が何であるかのフィルタの理解が変更されますか?それは、ここではないOutputLiteral.第二に重要であるInputLiteralだ、あなたは空のInputLiteralを持つことができないので、

答えて

0

まず第一に、あなたは(あなたがしようとすると、それだけでリテラルの入力を自動検出します)、フィルターから読んでいます。したがって、行終了レコードを解析するために作成されているため、POE::Filter::Lineを使用してすべてのデータを取得することはできません。代わりにPOE::Filter::Streamを使用してください。

+0

うわー、私はPOEについて知りませんでした:: Filter :: Stream。私はPOE :: Filter :: modulesをすべてチェックアウトしたと思った:/。答えをありがとう。 – mrburns

関連する問題