Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don't have time to wade through a gobof structs trying to figure out if you have to call bind() before you connect(), etc., etc.
These are lecture notes that I wrote for algorithms classes at the University of Illinois at UrbanaChampaign, which I have taught on average once a year since January 1999.