8.6. NetworkStream

The NetworkStream class abstracts the transfer of data over networks. The underlying mechanism used for transmission is System.Net.Sockets.Socket, which is actually used by all the classes in the System.Net namespace that pertain to network communication. Socket can be used directly, but like Stream, higher-level classes make interaction over the network much simpler. This chapter discusses two of these classes: TcpClient and TcpListener.

8.6.1. TCP

It is hard to find a machine that doesn't have several TCP-based clients already on it. Most have an email client, a web browser, or maybe even a Napster client (that sadly does not do a thing). TcpClient, which uses the Socket class, makes it easy to connect, send, and receive data over a network, facilitating the creation of these types of clients.

Most Internet applications work as follows: a connection is established to a server on a specified port, data is sent in a specified format, and a response is received. It's as simple as that. The difficult part has always been working with sockets, but .NET abstracts the difficulty away.

By using TcpClient, creating a TCP-based client is easy. For instance, Example 8-16 contains the listing for a finger client. Finger used to be more popular than it is today. It associates information with an email address, so someone with a finger client can type

finger xyz@mail.com

and retrieve all kinds of information—possibly the real name of the person, where the person currently ...

Get Object-Oriented Programming with Visual Basic .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.