Consider migrating to Socket.*Async () family of calls (perusing http://msdn.microsoft.com/en-us/library/system.net.sockets.socketasynceventargs.aspx)