SecureBlackbox 16: Why Does the Active Property of the Socket-Based Component Return True though the Connection is Closed?
The Active property, when set, indicates that the connection was successful and the component was ready to perform its actions. However if the connection was lost at the socket level, the Active property can still be True. This is because at the socket level there's no way to be notified that the connection is closed. The only way to check the actual connection state is to attempt to send something and get an error in the case that the connection has been closed. This is by design in TCP/IP.
Your code should always be ready to handle unexpected disconnections and other network errors and reconnect if needed.
We appreciate your feedback. If you have any questions, comments, or suggestions about this article please contact our support team at support@nsoftware.com.