Ping Part IV: Adventures in Socket programming using System.Net

In this part, we will add some networking code to the code we have thus far. When we get done, we should have a working Ping utility.   Take the program that we wrote in the Ping: Part III and add the following code.   using System; using System.Text; using System.Globalization; using System.Net; using System.Net.Sockets;…


Ping Part III: Adventures in Socket programming using System.Net

  In Part II of this article, we saw how we are going to use the ICMP protocol to implement a simple Ping client. We also saw a skeleton of this program which showed how to translate the ICMP packet specification into a C# structure.   In this part, we will write a routine to…


Ping Part II: Adventures in Socket programming using System.Net

If you see the ping utility that comes with your OS, you will notice that it has many options. However, the one we are going to develop will just take one argument:   C:\ping>ping <hostname> | <ipaddress>         Example: ping         Example: ping    Let us start out by looking at requirements of…


PING: Adventures in Socket programming using System.Net

After a long hiatus, I am back to posing to my blog. I am going to start out with a series on Socket programming.   In this series, I will show you how to implement a simple Ping client using classes from the System.Net.Sockets  namespace. It should be an exciting journey. For starters, you can…


Decoding Printer Tracking Technology

In a previous blog post, I wrote about how printer manufacturers are embedding tracking information in their printers. Well, today, via Slashdot, I learned that folks at EFF have figured out the encoding in atleast one printer (those made by Xerox). The following link has more details…


Tracing in System.Net (contd..)

Durgaprasad, the test lead for System.Net has a very informative entry on using Tracing facilities in whidbey.


Enabling Tracing for System.Net

In whidbey, System.Net has a cool retail tracing implementation. It writes most calls made to public API’s to a TraceListener. You can setup your own tracelisteners, or use the config file to setup a default listener. This facility is very useful in debugging problems with applications. Here is the example config file which enables Verbose…


HttpWebRequest and Host Headers

A user posted on the newsgroups asking about how to set Host headers in HttpWebRequest. HttpWebRequest does not allow the host header to be set by the user. It is set automatically from the URI supplied to HttpWebRequest constructor. However, it turns out that there is a roundabout way to accomplish this. This is shown…