CSNewsClient.exe is NNTP Client written in C# . (This is while writing.)

Usage

1. It copies NetNews\bin\Release\CSNewsClient.exe in the optional directory.
 This time, in order to have only CSNewsClient.exe, please do to the directory
 where it copies. Especially, in the directory where it copied, please make sure
 not to make any directory. Because, because CSNewsClient.exe makes directories, 
 is in order to prevent that directories conflict the directory name.

2. It executes CSNewsClient.exe.  When it does, because the input form,
 "The setting of NNTP server name and Newsgroups"  appears, first please
 input the NNTP server name you connect to. And please click the
 "Acquisition the Newsgroups" button. When it does, because the list of
 Newsgroups is indicated in the ListView of the left side, 1 Newsgroup
 which are subscribed from the list are selected, and please click the
 "Subscribe" button. When it does, the list of the Newsgroup which is
 subscribed in the right ListView is added. Several degrees it repeated
 this, it finished to select the Newsgroups which are subscribed entirely,
 if is, please push the "OK" button.

3. When it does, the main form named "CSNewsClient 0.0.3.0" comes out.
 Because this time the NNTP server name and the Newsgroups the last time
 it selects are set to the left ListView, please open the [+] icon in the
 ListView, and please select the Newsgroups.

4. When it waits for a while, the Newsgroups which are selected are indicated
 in the ListView of the right upper part. (Because at this time the news
 articles are downloaded, time is required a little. This time differs depending
 upon the quantity of the articles of the Newsgroup.) And when you open the [+]
 icon in the ListView, the threads of the news articles displayed. When subject
 of the news article is selected, the body of the article appears in the TextBox
 under the right.

5. When you would like to post the article, when the "Post" button is clicked,
 because input form appears, inputting necessary item, please click the "Send" button.
 Because the MessageBox which shows the sending and receiving of the NNTP server comes
 out, when the "OK" button is clicked, completing to post the article, it returns to
 the main form.

6. When you would like to do the follow-up in the article, after selecting
 the article which the follow-up is done from the ListView of the right upper part,
 please click the "Repost" button. Remaining job is similar to procedure 4.

7. When you would like to verify the source of the news article, please click the
 "the source of the news article" button.  When it does, the MessageBox which
 indicates the source of the news article comes out.

8. Once more when you would like to set the NNTP server name and the Newsgroups,
 when it selects the menu [settings] -> [NNTP server and Newsgroups], because
 the form "The setting of NNTP server name and Newsgroups" comes out, please do
 setting once more there.


The point of caution

1. Please protect the point of caution which is expressed  at above procedure 1.

2. Concerning the cancellation of subscription, it does not support yet.
 When we would like to cancel by any means, ending CSNewsClient.exe once,
 Deleting the directory we would like to cancel the Newsgroup (That directory
 is under the directory of the NNTP server), please make CSNewsClient start
 once more.


The content of the source codes

Form1.cs : The main form of CSNewsClient.exe

PostForm.cs : Form for news article posting

ServerForm.cs : Form which sets the NNTP server name and the Newsgroups.

NNTPClient.cs : To connect/disconnect to the NNTP server and
 receiving the news articles. 

NewsArticle.cs : The class of the news article. That has fields of
 the NewsHeader class and the NewsBody class.

NewsHeader.cs : The class of the "header part" in the news article.
 The header information is stored in the "Hashtable". 

NewsBody.cs : The class of the "body part" in the news article.

NewsArticleNode.cs : The class is the subclass of TreeNode class.
 It handles the news articles as the node of the tree.

NewsArticleDictionary.cs : The class has the Hashtable to store 
 the NewsArticle class.

NewsArticleNodeDictionary.cs : The class has the Hashtable to store 
 the NewsArticleNode class.

NewsGroupNode.cs : The class is the subclass of TreeNode class.
 It handles the Newsgroups as the node of the tree.

ServerNode.cs : The class is the subclass of TreeNode class.
 It handles the NNTP server name as the node of the tree.

QuotedPrintable.cs : Decoding the "Quoted Printable" encoding. 


Decoding the Quoted Printable encoding is, for instance,

string src = "=1B$B\"(L$>5Bz$H>5Bz9-9p\"#=1B(B";
byte[] bs = TestWeb.QuotedPrintable.GetBytes(src);
string res = System.Text.Encoding.GetEncoding("iso-2022-jp").GetString(bs);

TextCheck.cs : The class for the "static" methods to check the string.

-- 
CSamura
MailTo: samura@pop16.odn.ne.jp
URL(Japanese Weblog): http://spaces.msn.com/members/csamura/
