This is the mail archive of the
cygwin@sources.redhat.com
mailing list for the Cygwin project.
Re: socket read()/write() problem in 1.1.6 [solved]
On Monday 11 December 2000 20:15, Corinna Vinschen wrote:
> closesocket() behaves different dependent on the SO_LINGER option
> set. The default behaviour of SO_DONTLINGER which results in a
> immediate return while the connection is gracefully shutdown
> in the background.
>
> The new Cygwin socket code doesn't use standard handle duplication
> on socket inheritance between processes but the special Winsock2
> functions WSADuplicateSocket() and WSASocket().
>
> When calling closesocket() on duplicated sockets using the above
> Winsock2 method, closesocket() seems to act as if SO_LINGER with
> zero time-out is enabled which results in closesocket() returning
> immediately while forcing an immediate termination of the
> connection.
>
> That behaviour is not documented in the MSDN, AFAICS.
Sorry, folks. I have discovered the above description to be somewhat
rash. Further intensiv testing lead to the result that it's in fact
only a timing difference between using Winsock 1.1 and Winsock 2.0
sockets. You can reproduce the connection reset failure even with the
old implementation. It's far less frequently, though.
> I tried various workarounds but the only reliable way seems to
> be to perform a graceful shutdown in the application.
At least this remains true.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com