• 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: Issuing connect(2) after select(2) on non-blocking socket
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issuing connect(2) after select(2) on non-blocking socket


  • Subject: Re: Issuing connect(2) after select(2) on non-blocking socket
  • From: Carl Hoefs <email@hidden>
  • Date: Tue, 27 Jun 2017 09:09:09 -0700

While that makes sense, and is how I was doing it originally, it does require
issuing the connect() call twice, once before the select(), and once afterwards.

-Carl


> On Jun 27, 2017, at 8:22 AM, email@hidden wrote:
>
> If the socket says it's ready to read or write, then I would read or write
> whatever you planned on reading or writing, but be prepared to handle an
> error.  I think you will find that more robust than looking for particular
> errors at particular times.
>
>
>
> On 2017-06-26 15:52, Carl Hoefs wrote:
>
>>
>>> On Jun 26, 2017, at 3:37 PM, Dado Colussi <email@hidden
>>> <mailto:email@hidden>> wrote:
>>> After the connect() returns EINPROGRESS, and after the select() indicates 1
>>> descriptor ready for write, getsockopt() returns status=0, errno=0:
>>>
>>>              status = getsockopt(sockfd,SOL_SOCKET,SO_ERROR,&error,&len);
>>>
>>>
>>> getsockopt() returns 0 on successful retrieval of the option value. So
>>> that's good.
>>>
>>> The option value is stored in memory pointed to by the fourth parameter
>>> (named 'error', above). Hence the variable error == ECONNREFUSED.
>>
>> Yes, it does indeed return ECONNREFUSED, errno = 61, "Interrupted system
>> call" into my error variable! (I thought it would also set errno, but it
>> doesn't.)
>>
>> Thanks; this is exactly what I was looking for!
>>
>> -Carl
>>
>>
>>
>>
>>  _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Macnetworkprog mailing list      (email@hidden
>> <mailto:email@hidden>)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden <mailto:email@hidden>
 _______________________________________________
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

References: 
 >Re: Issuing connect(2) after select(2) on non-blocking socket (From: Dado Colussi <email@hidden>)
 >Re: Issuing connect(2) after select(2) on non-blocking socket (From: Carl Hoefs <email@hidden>)
 >Re: Issuing connect(2) after select(2) on non-blocking socket (From: Dado Colussi <email@hidden>)
 >Re: Issuing connect(2) after select(2) on non-blocking socket (From: Carl Hoefs <email@hidden>)
 >Re: Issuing connect(2) after select(2) on non-blocking socket (From: email@hidden)

  • Prev by Date: Re: Issuing connect(2) after select(2) on non-blocking socket
  • Next by Date: Re: NSURLSessionStreamTask and HTTP(S) proxies
  • Previous by thread: Re: Issuing connect(2) after select(2) on non-blocking socket
  • Next by thread: Re: Issuing connect(2) after select(2) on non-blocking socket
  • Index(es):
    • Date
    • Thread