I am in the midst of writing a client application that requires some rather strange behaviour. From what i have decided i will be needing two threads, one thread to constantly be blocked on a recv call, processing information when it is received and sending replies back, and another thread to ensure that the connection has not been broken (it will sleep for 5 minutes then use a send call to ensure the connection is still live). Hopefully that was not too confusing. I have looked into timeout options in the TCP layer but quickly realised i should not be touching those values since on windows anways it would change the timeout behaviour for all applications and 2 hours is simply too long. Pretty much i just want people to let me know if they believe it is feasible to implement this on windows using threads and blocking socket calls or suggest alternate solutions.