Thanks for the reply.
Here's a little background. I am building a VB.NET News Reader and can
successfully list news groups, and messages in each newsgroup. A response
from the server for a posted message will look like below.
I am trying to display the posts in a thread, much like you see in outlook
or any other news reader. There References Header seems to be the only
thing that relates the post to one another. I was trying to use the check
command which requires authentication, to look up the corresponding
crossposts. It seems that the only way I can cross reference the post is to
do this:
Query the news server for a list of posts in a group, and then use the HXDR
command to gets the message-id for every post. Once I have the headers, I
need to loop through all the headers and match the reference ID to the
Article ID. Once I have the Article ID for each referenced post I can then
lookup each post listed in the references header. This seems like a pain
with lots of uneccesary communication between the client and the server.
Does anyone know of an easier way to do this?
Client: group microsoft.public.dotnet.framework.aspnet
Server: 211 11566 471296 483110 microsoft.public.dotnet.framework.aspnet
Client: Article 483080
Server:
220 483080 <
[email protected]>
From: "Juan T. Llibre" <
[email protected]>
References: <
[email protected]>
<
[email protected]>
Subject: Re: NNTP Login
Date: Sat, 22 Sep 2007 06:37:19 -0400
Lines: 35
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.3790.2725
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4073
X-RFC2646: Format=Flowed; Response
Message-ID: <
[email protected]>
Newsgroups: microsoft.public.dotnet.framework.aspnet
NNTP-Posting-Host: 123stb62.codetel.net.do 66.98.12.123
Path: TK2MSFTNGP01.phx.gbl!TK2MSFTNGP04.phx.gbl
Xref: TK2MSFTNGP01.phx.gbl microsoft.public.dotnet.framework.aspnet:483080
The microsoft news server does not require a password to be sent to login to
it.
Why don't you login directly to the Microsoft news server (
msnews.microsoft.com ) ?
Just create an account for msnews.microsoft.com in Outlook Express...and
login.
I wouldn't include a real email address, though.
Either garble it a bit...or use a fake one.
Juan T. Llibre, asp.net MVP
asp.net faq :
http://asp.net.do/faq/
foros de asp.net, en espa?ol :
http://asp.net.do/foros/
======================================
Alexander Higgins said:
Posting from outlook express...
Shortened for brevity, this will get the last one hundred headers, in
actuality you may have to query thousands of headers.
Client: xhdr message-id 483010-483110
221 Xhdr information follows
483010 <ut#
[email protected]>
483011 <#
[email protected]>
483012 <
[email protected]>
483013 <#
[email protected]>
483014 <#nR#
[email protected]>
483015 <
[email protected]>
483016 <
[email protected]>
483017 <
[email protected]>
483018 <#
[email protected]>
483019 <#
[email protected]>
483020 <
[email protected]>
483021 <
[email protected]>
483022 <
[email protected]>
483023 <eS#
[email protected]>
483024 <#j0#
[email protected]>
483025 <
[email protected]>
483026 <
[email protected]>
483027 <
[email protected]>
483028 <%
[email protected]>
483029 <#
[email protected]>
483030 <
[email protected]>
483031 <
[email protected]>
483032 <
[email protected]>
483033 <
[email protected]>
483034 <
[email protected]>
483035 <
[email protected]>
483036 <
[email protected]>
483037 <
[email protected]>
483038 <
[email protected]>
483039 <
[email protected]>
483040 <
[email protected]>
483041 <
[email protected]>
483042 <
[email protected]>
483043 <#
[email protected]>
483044 <
[email protected]>
483045 <
[email protected]>
483046 <7895594e80f1a@uwe>
483047 <
[email protected]>
483048 <
[email protected]>
483049 <
[email protected]>
483050 <
[email protected]>
483051 <
[email protected]>
483052 <
[email protected]>
483053 <#
[email protected]>
483054 <
[email protected]>
483055 <
[email protected]>
483056 <
[email protected]>
483057 <
[email protected]>
483058 <#
[email protected]>
483059 <#
[email protected]>
483060 <wY3Ji.2142$Hv4.0@amstwist00>
483061 <O9#
[email protected]>
483062 <
[email protected]>
483063 <
[email protected]>
483064 <#
[email protected]>
483065 <
[email protected]>
483066 <
[email protected]>
483067 <
[email protected]>
483068 <
[email protected]>
483069 <
[email protected]>
483070 <#
[email protected]>
483071 <#
[email protected]>
483072 <
[email protected]>
483073 <
[email protected]>
483074 <
[email protected]>
483075 <
[email protected]>
483076 <
[email protected]>
483077 <#Z#
[email protected]>
483078 <
[email protected]>
483079 <
[email protected]>
483080 <
[email protected]>
483081 <
[email protected]>
483082 <
[email protected]>
483083 <
[email protected]>
483084 <#
[email protected]>
483085 <
[email protected]>
483086 <#
[email protected]>
483087 <
[email protected]>
483088 <
[email protected]>
483089 <
[email protected]>
483090 <
[email protected]>
483091 <
[email protected]>
483092 <
[email protected]>
483093 <
[email protected]>
483094 <
[email protected]>
483095 <
[email protected]>
483096 <
[email protected]>
483097 <
[email protected]>
483098 <
[email protected]>
483099 <#
[email protected]>
483100 <
[email protected]>
483101 <
[email protected]>
483102 <
[email protected]>
483103 <
[email protected]>
483104 <
[email protected]>
483105 <
[email protected]>
483106 <
[email protected]>
483107 <
[email protected]>
483108 <
[email protected]>
483109 <
[email protected]>
483110 <#
[email protected]>
Now that I have the message-id of the last 100 posts, loolp through each
until I find the reference id's
Dim References() as string = new string()
{"<
[email protected]>",
"<
[email protected]>"}
for I as integer = 0 to ubound(split(XHDR, vbnewline))
for j as integer = 0 to ubound(references)
if split(XHDR, vbnewline)(i).split(" ")(1) = referenences(j) then
References(j) = split(XHDR, vbnewline)(i).split(" ")(0)
next
next
return references
Now There references *should* contain the corrersponding articleID
' References(0) = 483074 References(1) = 483075
For I as integer =0 to ubound(references)
Dim article as string = GetArticle(references(i)
next
Function GetArticle(byval ArticleID as integer)
NNTP.Query("Article " & articleID & environment.newline)
End function
Client: Article 483075
Server: ----- Returns Articles similar to that above.
As you can see, there seems to be a lot of overhead head here going back and
forth. Is this how it needs to be done or is there a simpler way?