RFC du protocole NNTP : exemple


4. Sample Conversations

   These are samples of the conversations that might be expected with
   the news server in hypothetical sessions.  The notation C: indicates
   commands sent to the news server from the client program; S: indicate
   responses received from the server by the client.

4.1. Example 1 - relative access with NEXT

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 wombatvax news server ready - posting ok

   (client asks for a current newsgroup list)
   C:      LIST
   S:      215 list of newsgroups follows
   S:      net.wombats 00543 00501 y
   S:      net.unix-wizards 10125 10011 y
           (more information here)
   S:      net.idiots 00100 00001 n
   S:      .

   (client selects a newsgroup)
   C:      GROUP net.unix-wizards
   S:      211 104 10011 10125 net.unix-wizards group selected
           (there are 104 articles on file, from 10011 to 10125)

   (client selects an article to read)
   C:      STAT 10110
   S:      223 10110 <23445@sdcsvax.ARPA> article retrieved - statistics
           only (article 10110 selected, its message-id is
           <23445@sdcsvax.ARPA>)

   (client examines the header)
   C:      HEAD
   S:      221 10110 <23445@sdcsvax.ARPA> article retrieved - head
           follows (text of the header appears here)
   S:      .

   (client wants to see the text body of the article)
   C:      BODY
   S:      222 10110 <23445@sdcsvax.ARPA> article retrieved - body
           follows (body text here)
   S:      .

   (client selects next article in group)

   C:      NEXT
   S:      223 10113 <21495@nudebch.uucp> article retrieved - statistics
           only (article 10113 was next in group)

   (client finishes session)
   C:      QUIT
   S:      205 goodbye.

4.2. Example 2 - absolute article access with ARTICLE

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      201 UCB-VAX netnews server ready -- no posting allowed

   C:      GROUP msgs
   S:      211 103 402 504 msgs Your new group is msgs
           (there are 103 articles, from 402 to 504)

   C:      ARTICLE 401
   S:      423 No such article in this newsgroup

   C:      ARTICLE 402
   S:      220 402 <4105@ucbvax.ARPA> Article retrieved, text follows
   S:      (article header and body follow)
   S:      .

   C:      HEAD 403
   S:      221 403 <3108@mcvax.UUCP> Article retrieved, header follows
   S:      (article header follows)
   S:      .

   C:      QUIT
   S:      205 UCB-VAX news server closing connection.  Goodbye.

4.3. Example 3 - NEWGROUPS command

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 Imaginary Institute News Server ready (posting ok)

   (client asks for new newsgroups since April 3, 1985)
   C:      NEWGROUPS 850403 020000

   S:      231 New newsgroups since 03/04/85 02:00:00 follow

   S:      net.music.gdead
   S:      net.games.sources
   S:      .

   C:      GROUP net.music.gdead
   S:      211 0 1 1 net.music.gdead Newsgroup selected
           (there are no articles in that newsgroup, and
           the first and last article numbers should be ignored)

   C:      QUIT
   S:      205 Imaginary Institute news server ceasing service.  Bye!

4.4. Example 4 - posting a news article

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 BANZAIVAX news server ready, posting allowed.

   C:      POST
   S:      340 Continue posting; Period on a line by itself to end
   C:      (transmits news article in RFC850 format)
   C:      .
   S:      240 Article posted successfully.

   C:      QUIT
   S:      205 BANZAIVAX closing connection.  Goodbye.

4.5. Example 5 - interruption due to operator request

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      201 genericvax news server ready, no posting allowed.

           (assume normal conversation for some time, and
           that a newsgroup has been selected)

   C:      NEXT
   S:      223 1013 <5734@mcvax.UUCP> Article retrieved; text separate.

   C:      HEAD
   C:      221 1013 <5734@mcvax.UUCP> Article retrieved; head follows.

   S:      (sends head of article, but halfway through is
           interrupted by an operator request.  The following
           then occurs, without client intervention.)

   S:      (ends current line with a CR-LF pair)
   S:      .
   S:      400 Connection closed by operator.  Goodbye.
   S:      (closes connection)

4.6. Example 6 - Using the news server to distribute news between

      systems.

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      201 Foobar NNTP server ready (no posting)

   (client asks for new newsgroups since 2 am, May 15, 1985)
   C:      NEWGROUPS 850515 020000
   S:      235 New newsgroups since 850515 follow
   S:      net.fluff
   S:      net.lint
   S:      .

   (client asks for new news articles since 2 am, May 15, 1985)
   C:      NEWNEWS * 850515 020000
   S:      230 New news since 850515 020000 follows
   S:      <1772@foo.UUCP>
   S:      <87623@baz.UUCP>
   S:      <17872@GOLD.CSNET>
   S:      .

   (client asks for article <1772@foo.UUCP>)
   C:      ARTICLE <1772@foo.UUCP>
   S:      220 <1772@foo.UUCP> All of article follows
   S:      (sends entire message)
   S:      .

   (client asks for article <87623@baz.UUCP>
   C:      ARTICLE <87623@baz.UUCP>
   S:      220 <87623@baz.UUCP> All of article follows
   S:      (sends entire message)
   S:      .

   (client asks for article <17872@GOLD.CSNET>
   C:      ARTICLE <17872@GOLD.CSNET>
   S:      220 <17872@GOLD.CSNET> All of article follows
   S:      (sends entire message)
   S:      .

   (client offers an article it has received recently)
   C:      IHAVE <4105@ucbvax.ARPA>
   S:      435 Already seen that one, where you been?

   (client offers another article)
   C:      IHAVE <4106@ucbvax.ARPA>
   S:      335 News to me!  <CRLF.CRLF> to end.
   C:      (sends article)
   C:      .
   S:      235 Article transferred successfully.  Thanks.

   (or)

   S:      436 Transfer failed.

   (client is all through with the session)
   C:      QUIT
   S:      205 Foobar NNTP server bids you farewell.

4.7. Summary of commands and responses.

   The following are the commands recognized and responses returned by
   the NNTP server.

4.7.1. Commands

   ARTICLE
   BODY
   GROUP
   HEAD
   HELP
   IHAVE
   LAST
   LIST
   NEWGROUPS
   NEWNEWS
   NEXT
   POST
   QUIT
   SLAVE
   STAT

4.7.2. Responses

   100 help text follows
   199 debug output

   200 server ready - posting allowed
   201 server ready - no posting allowed
   202 slave status noted
   205 closing connection - goodbye!
   211 n f l s group selected
   215 list of newsgroups follows
   220 n <a> article retrieved - head and body follow 221 n <a> article
   retrieved - head follows
   222 n <a> article retrieved - body follows
   223 n <a> article retrieved - request text separately 230 list of new
   articles by message-id follows
   231 list of new newsgroups follows
   235 article transferred ok
   240 article posted ok

   335 send article to be transferred.  End with <CR-LF>.<CR-LF>
   340 send article to be posted. End with <CR-LF>.<CR-LF>

   400 service discontinued
   411 no such news group
   412 no newsgroup has been selected
   420 no current article has been selected
   421 no next article in this group
   422 no previous article in this group
   423 no such article number in this group
   430 no such article found
   435 article not wanted - do not send it
   436 transfer failed - try again later
   437 article rejected - do not try again.
   440 posting not allowed
   441 posting failed

   500 command not recognized
   501 command syntax error
   502 access restriction or permission denied
   503 program fault - command not performed

4.8. A Brief Word about the USENET News System

   In the UNIX world, which traditionally has been linked by 1200 baud
   dial-up telephone lines, the USENET News system has evolved to handle
   central storage, indexing, retrieval, and distribution of news.  With
   the exception of its underlying transport mechanism (UUCP), USENET
   News is an efficient means of providing news and bulletin service to
   subscribers on UNIX and other hosts worldwide.  The USENET News

   system is discussed in detail in RFC 850.  It runs on most versions
   of UNIX and on many other operating systems, and is customarily
   distributed without charge.

   USENET uses a spooling area on the UNIX host to store news articles,
   one per file. Each article consists of a series of heading text,
   which contain the sender's identification and organizational
   affiliation, timestamps, electronic mail reply paths, subject,
   newsgroup (subject category), and the like.  A complete news article
   is reproduced in its entirety below.  Please consult RFC 850 for more
   details.

      Relay-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site
      sdcsvax.UUCP
      Posting-Version: version B 2.10.1 6/24/83 SMI; site unitek.uucp
      Path:sdcsvax!sdcrdcf!hplabs!qantel!ihnp4!alberta!ubc-vision!unitek
      !honman
      From: honman@unitek.uucp (Man Wong)
      Newsgroups: net.unix-wizards
      Subject: foreground -> background ?
      Message-ID: <167@unitek.uucp>
      Date: 25 Sep 85 23:51:52 GMT
      Date-Received: 29 Sep 85 09:54:48 GMT
      Reply-To: honman@unitek.UUCP (Hon-Man Wong)
      Distribution: net.all
      Organization: Unitek Technologies Corporation
      Lines: 12

      I have a process (C program) which generates a child and waits for
      it to return.  What I would like to do is to be able to run the
      child process interactively for a while before kicking itself into
      the background so I can return to the parent process (while the
      child process is RUNNING in the background).  Can it be done?  And
      if it can, how?

      Please reply by E-mail.  Thanks in advance.

      Hon-Man Wong