0

Net_NNTP ->post()関数を使用しています。これにより、メッセージが NNTP サーバーにポストされます。ただし、場合によっては (30 ~ 50% のケース)、メッセージの各行の最後の 1 ~ 2 文字が切り捨てられます。時々、これはうまくいきます。

これを再現する方法が本当に見つかりません。メッセージに挿入されたテキストなどではなく、サーバーの負荷などでもありません...私はそれを理解していません。

どのようにデバッグすればよいと思いますか?


PHP のクラスと同じように動作するサンプル コードを次に示します。

$sh = fsockopen('nntp-server', 119);
fwrite($sh, "POST\r\n");
fwrite($sh, $article);
fwrite($sh, "\r\n.\r\n");

$article常に同じです。私がクラスターに接続しているサーバーは、立派な ISP の信頼できるサーバーであることがわかっています。それが問題だとは思いません!

これは私には本当に意味がありません。

4

2 に答える 2

2

ただし (30 ~ 50% のケース)、メッセージの各行の最後の 1 ~ 2 文字が切り捨てられます。

最後の行全体が欠落している場合は、意図的ではないソフトウェア エラーと言えます。しかし、すべての行から数バイトが失われている場合、これはソフトウェアによる意図的な動作である可能性が最も高いです。強制的なワード ラップのように、または行内の文字が突然間違ってエンコードされた場合 (utf など)。おそらく、この NNTP サーバーによって設定された 1 時間あたりのバイト数の制限があります。

いずれにせよ、リクエストパケットが通過するときと失敗するときがまったく同じであるとは思えません。

于 2012-05-06T12:26:03.810 に答える