This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: recv and errno during a connection reset/closed by peer


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]