title: How to implement a TCP/IP heartbeat on 2500+ sockets?
body: <p>I currently have an asynchronous TCP/IP socket C# WinForms application that is the "Server" application. The application holds persistent sockets to the clients. I would like to implement a heartbeat packet to detect Half-Open connections. </p>
  
  <p>Initially I thought about just creating a loop and sending the heartbeat to my entire collection of sockets every xx number of seconds. However, I think this would be bad for performance. </p>
  
  <p>I think I should somehow stagger the heartbeat and send to a few hundred sockets at once. Does anyone have any experience/techniques/implementations for effectively accomplishing this?</p>