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 that time password authentication
 is necessary,  because the form of "User name and Password" appears, checking
 the check box of "In this NNTP server needs authentication, inputting
 user name and the password, please push the OK button.)
 After that when it waits for a while, 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.

9. When we would like to cancel the news subscription, after the procedure 8,
 selecting the item which we would like to cancel from the right RistView,
 pushing the "Cancel Subscription" button, it deletes item, when it finishes
 to delete, please push the "OK" button. Making a mistake, when it cancels,
 pushing the "Cancel" button, please return to original main form. When it does,
 it has remained without being cancelled as cause.

10. When we would like to set user name and the password, to select the
 NNTP server name where we would like to set from the ListView of the left
 side of main form, because the form of "User name and Password"  comes out
 with the menu [Settings] -> [User name and Password], please set there.


The point of caution

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

2. Is concerning the cancellation of the subscription which is expressed with 9
 of applications, but when contents of item of the right ListView become  strange
 with cancellation of subscription, pushing the "Cancel" button,  please make sure
 to return to original main form.  So if it does,  present modification is reset.


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.

AuthForm.cs : It is Form that sets the user name and the password.

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.

NewsAuthentication.cs : It is the class in order to authenticate the server.

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/
