This chapter began by examining just how easy it is to download resources from a Web server using classes built into the .NET Framework. System.Uri enables you to express a URI, and System.Net. WebRequest, in combination with System.Net.HttpWebRequest and System.Net. HttpWebResponse, enables you to physically get hold of the data.
This chapter also described how you can build your own network protocol by using sockets, implemented in the System.Net.Sockets namespace. You looked at how TcpListener and TcpClient make it relatively easy to work with sockets, and you spent a lot of time working with threads and the various UI challenges that such work poses in order to make the application as usable as possible.
Finally, you learned how you can use the new WebBrowser control in your own Windows Form application to work with HTML and other documents.