• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: ioctl always returns 0
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ioctl always returns 0


  • Subject: Re: ioctl always returns 0
  • From: Vincent Lubet <email@hidden>
  • Date: Tue, 12 Apr 2005 14:30:04 -0700

This is normal, the TCP protocol has been designed to survive very long loss of connectivity so there is no idle timer by default.

You should set the socket option SO_KEEPALIVE to force the networking stack to check the peer is responding -- see man page setsockopt(2). In addition you may want to use the TCP option TCP_KEEPALIVE to specify the idle time used when SO_KEEPALIVE is enabled.

Vincent

On Apr 12, 2005, at 6:44 AM, Mahesh Vyas wrote:

Hi

The code below works fine if the client crashes. However, if there is a
power failure or a shut down of the client machine, the code doesn't
yield the desired result and the server machine is not able to detect
the client disconnect.
Could you suggest something for this?


Rgds
Abhishek


-----Original Message----- From: Vincent Lubet [mailto:email@hidden] Sent: Thursday, March 04, 2004 8:57 PM To: Mahesh Vyas Cc: email@hidden Subject: Re: ioctl always returns 0



On Mar 3, 2004, at 10:59 PM, Mahesh Vyas wrote:


ioctl(mSocket,FIONREAD,&lDgramSize) always returns 0 irrespective of
socket is closed or open.
Our aim is , when client quits server should find out with above API
whethe client still running or not.


This is not the correct way to find out the peer is disconnected.

Rather you should use recv() with the MSG_PEEK flags:

    n = recv(mSocket, &buffer, 1, MSG_PEEK);
    if (n == -1)
        if (errno == EWOULDBLOCK)
            no data
        else
            other error handling
    else if (n == 1)
        data is available
    else if (n == 0)
        peer is disconnected

Vincent







_______________________________________________ Do not post admin requests to the list. They will be ignored. Macnetworkprog mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: ioctl always returns 0
      • From: Jim Matthews <email@hidden>
    • Re: ioctl always returns 0
      • From: Justin Walker <email@hidden>
References: 
 >RE: ioctl always returns 0 (From: "Mahesh Vyas" <email@hidden>)

  • Prev by Date: Appending to files with CFFTP
  • Next by Date: Re: ioctl always returns 0
  • Previous by thread: RE: ioctl always returns 0
  • Next by thread: Re: ioctl always returns 0
  • Index(es):
    • Date
    • Thread