2

nntp サーバーを実装しようとしています。しかし、複数行の応答に問題があるようです。応答クライアントを送信すると、接続が閉じます。Thunderbird と SeaMonkey をクライアントとして使用しています。

私の応答の何が問題なのかを理解するのに役立ちます。ありがとう。

[S] server
[C] client


[S] 200NNTP Service Ready,posting permitted.

[C] MODE READER
[S] 200 Posting allowed

[C] GROUP group1
[S] 221 1 10100 10100

[C] XOVER 10100-10100
[S] 224
[S] 10100
[S] Subject 2104406756
[S] User0 <user0@xxx.com>
[S] Tue Jan 28 11:32:44FET 2014
[S] <10100@xxx.com>
[S] .

[C] HEAD 10100
[S] 221 10100 <10100@xxx.com>
[S] Path: news.foo.bar!not-for-mail
[S] From: User0<user0@xxx.com>
[S] Newsgroups: group1
[S] Subject: Subject 2104406756
[S] Date: Tue Jan 28 11:32:44FET 2014
[S] Message-ID: <10100@xxx.com>
[S] .

アップ 1:

クライアント側 (TBTracer) でトラフィックをデバッグするために Thunderbird にプラグインをインストールしましたが、クライアントが複数行の応答を理解できないようです。クライアントは応答の最初の部分のみを受け取りました。たとえば、XOVER の応答は複数行です。

[NNTP] [13:54:29] 200 NNTP Service Ready、投稿許可。

[NNTP] [13:54:29] モードリーダー

[NNTP] [13:54:30] 200 投稿許可

[NNTP] [13:54:30] グループ group1

[NNTP] [13:54:31] 221 1 10100 10100

[NNTP] [13:54:31] XOVER 10100-10100

[NNTP] [13:55:15] 224

[NNTP] [13:55:15] やめる

RFC 3977によると:

3.1.1. 複数行データ ブロック

  1. ブロックは、0 個以上の「行」のシーケンスで構成され、それぞれが CRLF ペアで終わるオクテットのストリームです。これらの行末とは別に、ストリームにはオクテット NUL、LF、または CR を含めてはなりません。

さまざまな種類の行を送信しようとしましたが、成功しませんでした。例えば:

String r = "224\r\n10100\r\n6 Oct 2000 04:38:40\r\n<10100@xxx.com>\r\n.\r\n";
4

1 に答える 1