recv and errno during a connection reset/closed by peer
Peter A. Castro
doctor@fruitbat.org
Wed Mar 30 13:40:00 GMT 2005
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/
More information about the Cygwin
mailing list