2014-01-29 5 views
1

nntp 서버를 구현하려고합니다. 하지만 다중 회선 응답에 문제가있는 것처럼 보입니다. 내가 응답 클라이언트에 가까운 연결을 보냈을 때. 저는 Thunderbird와 SeaMonkey를 클라이언트로 사용하고 있습니다.NNTP 서버 구현

나는 내 반응에 어떤 잘못이 있는지 이해하는 데 도움이된다. 감사.

[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 <[email protected]> 
[S] Tue Jan 28 11:32:44FET 2014 
[S] <[email protected]> 
[S] . 

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

upd1 : 나는 클라이언트 측 (TBTracer)에 트래픽을 디버깅 썬더 버드에 플러그인을 설치하고 클라이언트 내 멀티 라인 응답을 이해할 수없는 것 같습니다

. 클라이언트는 응답의 첫 번째 부분 만 받았습니다. 예를 들어 XOVER에 대한 응답은 다중 회선입니다.

[NNTP] [13:54:29] 200 NNTP 서비스 게시 준비가되었습니다.

는 [NNTP] 13시 54분 29초] MODE 리더

[NNTP] 13시 54분 30초 200은 전기

가 는 [NNTP] 13시 54분 30초] GROUP가 그룹 1을

하여 허용

[NNTP] 13시 54분 31초] 1 221 10100 10100

[NNTP] 13시 54분 31초] XOVER 10100-10100

[NNTP] 13시 55분 15초] 224

,451,515,

[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<[email protected]>\r\n.\r\n"; 

답변

2

대답은 간단합니다. RFC 2980 :

출력의 각 행은 관련 데이터베이스 헤더 또는
문서 자체 (각각 다음
데이터는 개요를 사용할 수 없을 때 문서 번호로 포맷한다
데이터베이스)를 탭 문자으로 구분하여 표시합니다.

데이터가없는 경우 null 입력란을 제공해야합니다 (예 : 출력에 두 탭 문자이 서로 인접).

예 : 111\tSubject\tUser\tDate\t111\t\t