The IsWritable property returns True if data can be written
to the socket without blocking. For non-blocking sockets, this
property can be checked before the application attempts to write to
the socket, 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 write to the socket without an error. The next socket
operation may result in a swErrorOperationWouldBlock or
swErrorOperationInProgress error. The application should treat
these errors as recoverable, and should be prepared to retry
operations that result in them.