From mboxrd@z Thu Jan 1 00:00:00 1970 From: jim@hosaka.SmallWorks.COM (Jim Thompson) To: gnu-win32@cygnus.com Cc: DKhosla@Compaq.com, colin@bird.fu.is.saga-u.ac.jp, jes@hosaka.SmallWorks.COM, pacoid@fringeware.com, pj@hosaka.SmallWorks.COM Subject: Re: corruption in socket layer?] Date: Fri, 10 Oct 1997 15:04:00 -0000 Message-id: <199710101617.LAA02323@beavis.smallworks.com> X-SW-Source: 1997-10/msg00225.html Colin (and Microsoft) should read RFC793: CLOSE is an operation meaning "I have no more data to send." The notion of closing a full-duplex connection is subject to ambiguous interpretation, of course, since it may not be obvious how to treat the receiving side of the connection. We have chosen to treat CLOSE in a simplex fashion. The user who CLOSEs may continue to RECEIVE until he is told that the other side has CLOSED also. Thus, a program could initiate several SENDs followed by a CLOSE, and then continue to RECEIVE until signaled that a RECEIVE failed because the other side has CLOSED. We assume that the TCP will signal a user, even if no RECEIVEs are outstanding, that the other side has closed, so the user can terminate his side gracefully. A TCP will reliably deliver all buffers SENT before the connection was CLOSED so a user who expects no data in return need only wait to hear the connection was CLOSED successfully to know that all his data was received at the destination TCP. Users must keep reading connections they close for sending until the TCP says no more data. The second to last sentence makes the behavior of a conformant TCP clear. Jim - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request@cygnus.com" with one line of text: "help".