The IsWritable property returns True if data can be
written without blocking. For non-blocking connections, this
property can be checked before the application attempts to send
data to the remote host, preventing an error.
If the IsWritable property returns False, this means that
the application cannot write to the socket at that time. However,
if the property returns True, this does not guarantee that you will
be able to send data without an error. The next operation may
result in an stErrorOperationWouldBlock or
stErrorOperationInProgress error. The application must treat
these errors as recoverable, and should be prepared to retry
operations that result in them.