On CentOS 5.4, Linux 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:18:27 EST 2009 i686 i686 i386 GNU/Linux In man 2 send I find: The send() call may be used only when the socket is in a connected state (so that the intended recipient is known). The only difference between send() and write() is the presence of flags. With zero flags parameter, send() is equivalent to write(). In some complex server software, if the client disconnects: send: delivers errno == ECONNRESET but write: crashes the server process. So it is not really equivalent. Any thoughts on this? Thanks, Mike.
On 4/6/2010 2:16 PM, Michael D. Berger wrote:> On CentOS 5.4, > Linux 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:18:27 EST 2009 > i686 i686 i386 GNU/Linux > > In man 2 send I find: > > The send() call may be used only when the socket is in a connected > state (so that the intended recipient is known). The only difference > between send() and write() is the presence of flags. With zero flags > parameter, send() is equivalent to write(). > > In some complex server software, if the client disconnects: > send: delivers errno == ECONNRESET > but > write: crashes the server process. > > So it is not really equivalent. Any thoughts on this?Are you sure it isn't the normal signal associated with a write when the other end closes first that is crashing the process? -- Les Mikesell lesmikesell at gmail.com