In .NET 2.0, the System.Net.Sockets.Socket class now includes a SendTimeout parameter, so you could easily handle it if you upgraded. If you want to do it in 1.1, then you will probably have to ...
TCP/IP network programming in C on Linux is good fun. All the advanced features of the stack are at your disposal, and you can do lot of interesting things in user space without getting into kernel ...