By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,127 Members | 1,147 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,127 IT Pros & Developers. It's quick & easy.

Seeking NNTP classes.....

P: n/a
Jim
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked? If not,
inclusion of RFC documented protocols would certainly be a good idea for a
class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe even
improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP protocols
are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and the RFC for the
USENET mail standard is at http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!

Dec 13 '05 #1
Share this Question
Share on Google+
11 Replies


P: n/a
The way I see it, you have two choices and most likely a couple more.

1. Implement the RFCs using TcpClient. (two thumbs down from me)
2. Utilize other people work. Use the IndyProject http//www.indyproject.org

In the last couple of years I wanted to do the same thing but, never really
got going. I found a couple of .NET libraries but found that Indy was the
most complete.

Good luck and if you succeed, please post about it! :)

Chris
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked?
If not, inclusion of RFC documented protocols would certainly be a
good idea for a class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe
even improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP
protocols are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and
the RFC for the USENET mail standard is at
http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!

Dec 13 '05 #2

P: n/a
Jim
Link doesn't work to Indy.....http//www.indyproject.org simply redirects to
www.microsoft.com.
"chris martin" <chris_m|NOSPAM|@caliber|SPAM|web.com> wrote in message
news:44**************************@news.easynews.co m...
The way I see it, you have two choices and most likely a couple more.

1. Implement the RFCs using TcpClient. (two thumbs down from me)
2. Utilize other people work. Use the IndyProject
http//www.indyproject.org

In the last couple of years I wanted to do the same thing but, never
really got going. I found a couple of .NET libraries but found that Indy
was the most complete.

Good luck and if you succeed, please post about it! :)

Chris
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked?
If not, inclusion of RFC documented protocols would certainly be a
good idea for a class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe
even improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP
protocols are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and
the RFC for the USENET mail standard is at
http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!


Dec 13 '05 #3

P: n/a
Jim
Googled and found it..... thanks!

"Jim" <re***@groups.please> wrote in message
news:If*****************@bignews5.bellsouth.net...
Link doesn't work to Indy.....http//www.indyproject.org simply redirects
to www.microsoft.com.
"chris martin" <chris_m|NOSPAM|@caliber|SPAM|web.com> wrote in message
news:44**************************@news.easynews.co m...
The way I see it, you have two choices and most likely a couple more.

1. Implement the RFCs using TcpClient. (two thumbs down from me)
2. Utilize other people work. Use the IndyProject
http//www.indyproject.org

In the last couple of years I wanted to do the same thing but, never
really got going. I found a couple of .NET libraries but found that Indy
was the most complete.

Good luck and if you succeed, please post about it! :)

Chris
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked?
If not, inclusion of RFC documented protocols would certainly be a
good idea for a class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe
even improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP
protocols are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and
the RFC for the USENET mail standard is at
http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!



Dec 13 '05 #4

P: n/a
Jim
Doesn't play well with VS 2005....
"Jim" <re***@groups.please> wrote in message
news:5h*****************@bignews5.bellsouth.net...
Googled and found it..... thanks!

"Jim" <re***@groups.please> wrote in message
news:If*****************@bignews5.bellsouth.net...
Link doesn't work to Indy.....http//www.indyproject.org simply redirects
to www.microsoft.com.
"chris martin" <chris_m|NOSPAM|@caliber|SPAM|web.com> wrote in message
news:44**************************@news.easynews.co m...
The way I see it, you have two choices and most likely a couple more.

1. Implement the RFCs using TcpClient. (two thumbs down from me)
2. Utilize other people work. Use the IndyProject
http//www.indyproject.org

In the last couple of years I wanted to do the same thing but, never
really got going. I found a couple of .NET libraries but found that Indy
was the most complete.

Good luck and if you succeed, please post about it! :)

Chris

Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked?
If not, inclusion of RFC documented protocols would certainly be a
good idea for a class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe
even improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP
protocols are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and
the RFC for the USENET mail standard is at
http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!



Dec 13 '05 #5

P: n/a
"Jim" <re***@groups.please> schrieb:
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?


Accessing newsgroups with NNTP
<URL:http://dotnet.mvps.org/dotnet/faqs/?id=nntp&lang=en>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Dec 13 '05 #6

P: n/a
Hi,

Here is some vb.net code I wrote based on this c# code.

http://www.developerfusion.co.uk/show/4472/

NNTP class
Imports System.Net.Sockets
Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary

Public Class NNTP
Inherits System.Net.Sockets.TcpClient

Public Event MessageHeaderRecieved(ByVal sender As Object, ByVal e As
NNPTEventArgs)
Dim arNews As New NewsGroupMessageTable
Dim mstrGroupName As String

#Region "Message custom Hashtable"
<Serializable()> _
Private Class NewsGroupMessageTable
Inherits System.Collections.DictionaryBase
Default Public Property Item(ByVal key As [String]) As
NNTP.NewsGroupMessage
Get
Return CType(Dictionary(key), NNTP.NewsGroupMessage)
End Get
Set(ByVal Value As NNTP.NewsGroupMessage)
Dictionary(key) = Value
End Set
End Property

Public ReadOnly Property Keys() As ICollection
Get
Return Dictionary.Keys
End Get
End Property

Public ReadOnly Property Values() As ICollection
Get
Return Dictionary.Values
End Get
End Property

Public Sub Add(ByVal key As [String], ByVal value As
NNTP.NewsGroupMessage)
Dictionary.Add(key, value)
End Sub 'Add

Public Function Contains(ByVal key As [String]) As Boolean
Return Dictionary.Contains(key)
End Function 'Contains

Public Sub Remove(ByVal key As [String])
Dictionary.Remove(key)
End Sub 'Remove

End Class
#End Region

#Region "News group message class"
<Serializable()> _
Public Class NewsGroupMessage
Dim mstrSubject As String
Dim mstrTo As String
Dim mstrFrom As String
Dim mstrBody As String
Dim mdtMessage As Date
Dim intId As Long
Dim strRef As String = "None"

Public Property ID() As Long
Get
Return intId
End Get
Set(ByVal Value As Long)
intId = Value
End Set
End Property

Public Property MessageDate() As Date
Get
Return mdtMessage
End Get
Set(ByVal Value As Date)
mdtMessage = Value
End Set
End Property

Public Property Subject() As String
Get
Return mstrSubject
End Get
Set(ByVal Value As String)
mstrSubject = Value
End Set
End Property

Public Property From() As String
Get
Return mstrFrom
End Get
Set(ByVal Value As String)
mstrFrom = Value
End Set
End Property

Public Property Body() As String
Get
Return mstrBody
End Get
Set(ByVal Value As String)
mstrBody = Value
End Set
End Property

Public Property MessageReference() As String
Get
Return strRef
End Get
Set(ByVal Value As String)
strRef = Value
End Set
End Property
Public Property MessageTo() As String
Get
Return mstrTo
End Get
Set(ByVal Value As String)
mstrTo = Value
End Set
End Property
End Class

#End Region

#Region "NNPT event args"
Public Class NNPTEventArgs
Inherits EventArgs
Private mintMax As Long
Private mintpos As Long
Private mMessage As NewsGroupMessage

Public Sub New(ByVal max As Long, ByVal pos As Long, ByVal message
As NewsGroupMessage)
mintMax = max
mintpos = pos
mMessage = message
End Sub

Public ReadOnly Property Max() As Long
Get
Return mintMax
End Get
End Property

Public ReadOnly Property Pos() As Long
Get
Return mintpos
End Get
End Property

Public ReadOnly Property Message() As NewsGroupMessage
Get
Return mMessage
End Get
End Property
End Class
#End Region

Public Overloads Sub Connect(ByVal server As String)
Dim strResponse As String

Connect(server, 119)
strResponse = Response()
If strResponse.Substring(0, 3) <> "200" Then
Throw New NntpException(Response)
End If

End Sub 'Connect

Public Sub Disconnect()
Dim message As String
Dim strResponse As String

message = "QUIT" + vbCr + vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "205" Then
'Throw New NntpException(Response)
End If
Dim strFile As String = String.Format("{0}.ngd",
CurrentNewsGroup.Replace(".", ""))

Dim fs As New FileStream(strFile, FileMode.OpenOrCreate)

'Get a Binary Formatter instance
Dim bf As New BinaryFormatter

'Serialize t
bf.Serialize(fs, arNews)

End Sub 'Disconnect

Public Function GetNewsgroups() As ArrayList
Dim message As String
Dim strResponse As String

Dim retval As New ArrayList

message = "LIST" & vbCr & vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "215" Then
Throw New NntpException(Response)
End If

While True
strResponse = Response()
If strResponse = "." + vbCr + vbLf OrElse strResponse = "." +
vbLf Then
Return retval
Else
Dim seps As Char = " "c
Dim values As String() = strResponse.Split(seps)
retval.Add(values(0))
End If
End While

End Function 'GetNewsgroups

Private Function Response() As String
Dim enc As New System.Text.ASCIIEncoding
Dim serverbuff() As Byte = New [Byte](1023) {}
Dim stream As NetworkStream = GetStream()
Dim count As Integer = 0
While True
Dim buff() As Byte = New [Byte](1) {}
Dim bytes As Integer = stream.Read(buff, 0, 1)
If bytes = 1 Then
serverbuff(count) = buff(0)
count += 1

If buff(0) = Asc(vbLf) Then
Exit While
End If
Else
Exit While
End If
End While

Dim retval As String = enc.GetString(serverbuff, 0, count)
'Debug.WriteLine("READ:" + retval)
Return retval

End Function 'Response

Public Property CurrentNewsGroup() As String
Get
Return mstrGroupName
End Get
Set(ByVal Value As String)
mstrGroupName = Value
End Set
End Property

Public Sub GetNewsHeaders()
Dim message As String
Dim strResponse As String = "211"

If CurrentNewsGroup Is Nothing Then
MessageBox.Show("Set news group first")
Return
End If

message = "GROUP " + CurrentNewsGroup + vbCr + vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "211" Then
Throw New NntpException(strResponse)
End If

Dim seps As Char = " "c
Dim values As String() = strResponse.Split(seps)

Dim start As Long = Int32.Parse(values(2))
Dim [end] As Long = Int32.Parse(values(3))

If start + 500 < [end] AndAlso [end] > 500 Then
start = [end] - 500
End If

Dim strFile As String = String.Format("{0}.ngd",
CurrentNewsGroup.Replace(".", ""))
If File.Exists(strFile) Then
Dim fs As New FileStream(strFile, FileMode.Open)

'Get a Binary Formatter instance
Dim bf As New BinaryFormatter

'Deserialize c from strFilename2
'Note that the deserialized object must be cast to the proper
type.
arNews = CType(bf.Deserialize(fs), NewsGroupMessageTable)

'Close the file and release resources (avoids GC delays)
fs.Close()

End If
Dim l As Long = 0
For Each c As NewsGroupMessage In arNews.Values
l += 1
RaiseEvent MessageHeaderRecieved(Me, New
NNPTEventArgs(arNews.Count, l, c))
Next

Dim i As Long
For i = [end] To start Step -1
If Not arNews.Contains(i.ToString) Then
message = "HEAD " & i & vbCr & vbLf
Write(message)
strResponse = Response()

If strResponse.Substring(0, 3) <> "423" Then

If strResponse.Substring(0, 3) <> "221" Then
Throw New NntpException(strResponse)
Else
Dim article As New NewsGroupMessage
article.ID = i
Dim intLine As Integer = 0
Dim strMessage As String

While True
strResponse = Response()
If strResponse = "." + vbCr + vbLf Then
Exit While
End If

If strResponse = "." + vbLf Then
Exit While
End If

If strResponse.IndexOf("From:") = 0 Then
article.From = strResponse.Substring(6)
ElseIf strResponse.IndexOf("Subject") = 0 Then
article.Subject = strResponse.Substring(9)
ElseIf strResponse.IndexOf("References:") = 0
Then
article.MessageReference =
strResponse.Substring(12)
ElseIf strResponse.IndexOf("Message-ID:") = 0
Then
strMessage = strResponse.Substring(12)
ElseIf strResponse.IndexOf("Newsgroups:") = 0
Then
article.MessageTo =
strResponse.Substring(12)
ElseIf strResponse.IndexOf("Date:") = 0 Then
Dim intEnd As Integer =
strResponse.IndexOf("-") - 6
If intEnd < 0 Then
intEnd = strResponse.IndexOf("+") - 6
End If
If intEnd < 0 Then
intEnd = strResponse.IndexOf("GMT") - 6
End If
article.MessageDate =
DateTime.Parse(strResponse.Substring(6, intEnd))
End If
intLine += 1
End While
If article.MessageReference = "None" Then
article.MessageReference = strMessage
arNews.Add(article.ID.ToString, article)
Dim z As Long = [end] - start
RaiseEvent MessageHeaderRecieved(Me, New
NNPTEventArgs([end] - start, z - (i - start), article))
End If
End If
End If
Next i
End Sub 'GetNews

Public Function GetNewsArticle(ByVal MessageID As Long) As String
Dim message As String
Dim strResponse As String

If CurrentNewsGroup Is Nothing Then
MessageBox.Show("Set news group first")
Return Nothing
End If

message = "GROUP " + CurrentNewsGroup + vbCr + vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "211" Then
Throw New NntpException(strResponse)
End If

message = "BODY " & MessageID.ToString & vbCr & vbLf
Write(message)
Dim article As String
strResponse = Response()

If strResponse.Substring(0, 3) <> "423" Then

If strResponse.Substring(0, 3) <> "222" Then
Throw New NntpException(strResponse)
Else
Dim intLine As Integer = 0
Dim strMessage As String

While True
strResponse = Response()
If strResponse = "." + vbCr + vbLf Then
Exit While
End If

If strResponse = "." + vbLf Then
Exit While
End If

article &= strResponse
End While
DirectCast(arNews.Item(MessageID.ToString),
NewsGroupMessage).Body = article
End If
End If
Return article

End Function 'GetNews

Public Sub Post(ByVal newsgroup As String, ByVal subject As String,
ByVal from As String, ByVal content As String)
Dim message As String
Dim strResponse As String

message = "POST " & newsgroup & vbCr & vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "340" Then
Throw New NntpException(Response)
End If

message = "From: " & from & vbCr & vbLf & "Newsgroups: " & newsgroup
& vbCr & vbLf & "Subject: " & subject & vbCr & vbLf & vbCr & vbLf & content
& vbCr & vbLf & "." & vbCr & vbLf
Write(message)
strResponse = Response()
If strResponse.Substring(0, 3) <> "240" Then
Throw New NntpException(Response)
End If

End Sub 'Post

Private Sub Write(ByVal message As String)
Dim en As New System.Text.ASCIIEncoding

Dim WriteBuffer(1023) As Byte
WriteBuffer = en.GetBytes(message)

Dim stream As NetworkStream = GetStream()
stream.Write(WriteBuffer, 0, WriteBuffer.Length)

'Debug.WriteLine("WRITE:" & message)

End Sub 'Write
End Class

Public Class NewsGroupMessageCollection
Inherits System.Collections.CollectionBase
Public Sub Add(ByVal value As NNTP.NewsGroupMessage)
list.Add(value)
End Sub

Public Sub Remove(ByVal Index As Integer)
If Index > Count - 1 Or Index < 0 Then
Throw New Exception("Invalid Index")
Else
list.RemoveAt(Index)
End If
End Sub

Public ReadOnly Property Item(ByVal Index As Integer) As
NNTP.NewsGroupMessage
Get
Return CType(list.Item(Index), NNTP.NewsGroupMessage)
End Get
End Property
End Class


Public Class NntpException
Inherits System.ApplicationException

Public Sub New(ByVal str As String)
MyBase.New(str)

End Sub 'New
End Class 'NntpException

Ken
------------------
"Jim" <re***@groups.please> wrote in message
news:yq*******************@bignews4.bellsouth.net. ..
Have you seen any NNTP classes that I may use or build upon to build a
simple newsreader/downloader?

Is there such a class in the .Net framework that I have overlooked? If
not,
inclusion of RFC documented protocols would certainly be a good idea for a
class hierarchy in the .Net classes.

You could adopt and extend the classes at will. Who knows......maybe even
improve one and get a new RFC implemented.

Any help you could give would be great. (FYI the RFCs for NNTP protocols
are at http://www.ietf.org/rfc/rfc0977.txt?number=977 and the RFC for the
USENET mail standard is at
http://www.ietf.org/rfc/rfc0850.txt?number=850.)

Thanks!

Dec 13 '05 #7

P: n/a
Jim
Thanks for the jumping off point!

"Ken Tucker [MVP]" <vb***@bellsouth.net> wrote in message
news:O8*************@TK2MSFTNGP12.phx.gbl...
Hi,

Here is some vb.net code I wrote based on this c# code.

http://www.developerfusion.co.uk/show/4472/

Dec 13 '05 #8

P: n/a
> Have you seen any NNTP classes that I may use or build upon to build a

simple newsreader/downloader?

Jim there is an NNTP demo included in IPWorks.
The NNTP component implements all of the protocol for you - leaving you with a
very simple API to work with. If you need more sample code, let me know, we've
got plenty.

Regards,
Lance R.
/n software
http://www.nsoftware.com/

-

Dec 13 '05 #9

P: n/a
Jim
Thanks Lance, but this is for a freeware project. While I am certain that
your components are of impeccable quality and that they are very easy to
use, I cannot justify the $400 price tag for a freeware project.

With the .Net components that I have worked with thus far (and I have not
worked with IPWorks yet) I cringe at the very thought of spending more than
$100 on any component. The components that I have used this far miss the
marks of ease-of-use set by the COM components I was used to (pre- this .Net
disaster) by a mile.

They are neither intuitive nor easy to use. I will reserve judgment on
IPWorks until I have some extra time to play with a demo, but, to be quite
honest, if IPWorks is intuitive or as easy to use as the old COM components
that used extensively I would be shocked.

It is also a sad commentary on the devastation that Microsoft has wrought
throughout its own industry that the component developers didn't have
anything ready for .Net 2.0 at its launch. That means that they aren't
making enough money off of components to put the needed resources on the
projects that need upgrading for .Net 2.0. And, that means that the masses
of VB programmers that used to buy components like crack whores needing a
fix just aren't programming any more.

I suppose that's a major reason for the free Express editions of VS 2005.
Trying to get back what they scattered.

Alas, it may be too little, too late. As Microsoft is (and its component
developers are) learning.....it's damned hard to put Humpty back together
again.
"Lance R." <la****@nsoftware.removeme.com> wrote in message
news:OO**************@TK2MSFTNGP10.phx.gbl...
Have you seen any NNTP classes that I may use or build upon to build a

simple newsreader/downloader?

Jim there is an NNTP demo included in IPWorks.
The NNTP component implements all of the protocol for you - leaving you
with a
very simple API to work with. If you need more sample code, let me know,
we've
got plenty.

Regards,
Lance R.
/n software
http://www.nsoftware.com/

-

Dec 13 '05 #10

P: n/a
Jim
The Indy Project is evidently NOT for use with VB.Net (despite what the web
site states).

Here is an exchange I had with a "TeamB" member after finding a missing
component needed to run the VB.Net NNTP Post sample code on the IndyProject
site....(posted at atozedsoftware.indy.protocol.nntp - their news server )

--------------
"Remy Lebeau (TeamB)" <no*****@no.spam.com> wrote in message
news:34FFE96364E5E240no*****@no.spam.com...

"Jim" <re***@groups.please> wrote in message
news:9E05031460E5E240re***@groups.please...
The NNTP Post example (for .Net) has a reference to
Borland.VclRtl, but the file does not seem to be included
with the example code or Indy 10.
It is a Borland runtime file that is part of the Delphi product. From the
sounds of it, you are not actually using Delphi.NET to write your
application, are you?


No. I an using VB.Net Pro 2005.
Where can I get this file


You need to use Delphi.


I guess the part that threw me was the whole Visual Basic .Net NNTP Post
example. Seeing as how the example was written in VB.Net, I thought that's
what you'd use to run it.

My bad.
------------

Evidentially, Indy is for Delphi only.....either that or they don't want to
fool with you unless you code in Delphi.

I don't know about you, but I have enough fanatics to worry about without
adding Delphi language fanatics to the mix.

Moving on......
Dec 13 '05 #11

P: n/a
Jim
To be fair to the nsoftware people, I downloaded the trial version of the
core components (Version 6.1.2161) to see for myself if they would be easy
to use.

I have to take back my doubts about the ease-of-use of the nsoftware nntp
component.

It is very easy to use AND intuitive. I made a test form, connected to my
NNTP server and downloaded the groups listing in less than 2
minutes...without having used nsoftware components before and without
reading any of the very detailed documentation that comes with the suite.

My hat is off to you sir. And, I offer my heartfelt apologies for having
lumped your company's products in with the rest. Yours by far outshines
anything I have used or tested to date.

Jim
"Jim" <re***@groups.please> wrote in message
news:b0******************@bignews6.bellsouth.net.. .
Thanks Lance, but this is for a freeware project. While I am certain that
your components are of impeccable quality and that they are very easy to
use, I cannot justify the $400 price tag for a freeware project.

With the .Net components that I have worked with thus far (and I have not
worked with IPWorks yet) I cringe at the very thought of spending more
than $100 on any component. The components that I have used this far miss
the marks of ease-of-use set by the COM components I was used to (pre-
this .Net disaster) by a mile.

They are neither intuitive nor easy to use. I will reserve judgment on
IPWorks until I have some extra time to play with a demo, but, to be quite
honest, if IPWorks is intuitive or as easy to use as the old COM
components that used extensively I would be shocked.

It is also a sad commentary on the devastation that Microsoft has wrought
throughout its own industry that the component developers didn't have
anything ready for .Net 2.0 at its launch. That means that they aren't
making enough money off of components to put the needed resources on the
projects that need upgrading for .Net 2.0. And, that means that the
masses of VB programmers that used to buy components like crack whores
needing a fix just aren't programming any more.

I suppose that's a major reason for the free Express editions of VS 2005.
Trying to get back what they scattered.

Alas, it may be too little, too late. As Microsoft is (and its component
developers are) learning.....it's damned hard to put Humpty back together
again.
"Lance R." <la****@nsoftware.removeme.com> wrote in message
news:OO**************@TK2MSFTNGP10.phx.gbl...
Have you seen any NNTP classes that I may use or build upon to build a

simple newsreader/downloader?

Jim there is an NNTP demo included in IPWorks.
The NNTP component implements all of the protocol for you - leaving you
with a
very simple API to work with. If you need more sample code, let me know,
we've
got plenty.

Regards,
Lance R.
/n software
http://www.nsoftware.com/

-


Dec 15 '05 #12

This discussion thread is closed

Replies have been disabled for this discussion.