When there are no activities in the tcp connection, the remote server may close
the connection. Properly handle this scenario so that the SocketQueue is not
holding on to a closed TCP socket; but trigger the SocketQueue to be destroyed
so that it will be re-created on the next send.
When there are no activities in the tcp connection, the remote server may close the connection. Properly handle this scenario so that the SocketQueue is not holding on to a closed TCP socket; but trigger the SocketQueue to be destroyed so that it will be re-created on the next send.