This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: recv and errno during a connection reset/closed by peer
- From: "Peter A. Castro" <doctor at fruitbat dot org>
- To: Peter Stephens <ptfoof at sbcglobal dot net>
- Cc: cygwin at cygwin dot com
- Date: Tue, 29 Mar 2005 17:27:12 -0800 (PST)
- Subject: RE: recv and errno during a connection reset/closed by peer
- References: <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAUKQItienSEKG+9226yKd5cKAAAAQAAAAdWX/pT74GUisDog/o7TE3gEAAAAA@sbcglobal.net>
On Tue, 29 Mar 2005, Peter Stephens wrote:
Peter,
Hi Peter :)
I have thought about your suggestion and it makes a lot of sense. If I
understand correctly this is what you are thinking about:
Yes, this is pretty similar to how I've solve this before. It's a good
compromise for an (arguably) imperfect interface.
int I = 0;
<< another new line
do{
ret_val = recv(afd, buf, MAX_BUF, MSG_PEEK);
if(0 > ret_val)
err(" >>> ERRNO");
else if(0 == ret_val){ <<
new lines start here
if(100 < i++)
done = -1;
}
<< new lines end here
else if(ret_val > 0){
i = 0;
<< another new line
show_status(afd);
ret_val = recv(afd, buf, MAX_BUF, 0);
buf[ret_val]='\0';
printf("(%i) \t> %s", ret_val, buf);
}
usleep(250);
if(!done)
<< another new line
done = handle_it(buf);
}while(!done);
It seems like your suggestion would be very portable. A good suggestion and
the most likely route for me at this point.
I hope it does the job for you.
Peter A. Stephens
ptfoof@sbcglobal.net
--
Peter A. Castro <doctor@fruitbat.org> or <Peter.Castro@oracle.com>
"Cats are just autistic Dogs" -- Dr. Tony Attwood
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/