Detecting Socket Disconnect Using TCP KeepAlive Detecting Socket Disconnect Using TCP KeepAlive multithreading multithreading