Setting the KeepAlive property to a value of true indicates
          that packets are to be sent to the remote system when no data is
          being exchanged to keep the connection active. This property can only
          be set for stream sockets that were created with the Protocol
          property set to a value of swProtocolTcp.
          If this property is set to true, keep-alive packets will start
          being generated five seconds after the socket has become idle with no
          data being sent or received. Enabling this option can be used by
          applications to detect when a physical network connection has been
          lost. However, it is recommended that most applications query the
          remote host directly to determine if the connection is still active.
          This is typically accomplished by sending specific commands to the
          server to query its status, or checking the elapsed time since the
          last response from the server.