The Flush method will flush any data waiting to be read or
written to the remote host . It is important to note that this method
is not similar to flushing data to a disk file; it does not ensure
that a specific block of data has been written to the socket. For
example, you should never call this function immediately after
calling the Write or WriteLine methods, or prior to calling the
Disconnect method.
An application should not use the Flush method under
normal circumstances. This method is only to be used when the
application needs to immediately return the socket to an inactive
state with no pending data to be read or written. Calling this
method may result in data loss and should only be used if you
understand the implications of discarding any data which has been
sent by the remote host.