OT - advice on async I/O pls

Gilboa Davara gilboad at gmail.com
Sun Apr 12 09:11:53 UTC 2009


On Mon, 2009-04-06 at 11:29 +0100, T. Horsnell wrote:
> Apologies for this off-topic post. Pls point me elsewhere if
> there's a more suitable list.
> 
> I'm using sendto and rcvfrom to handle a UDP connection to a
> remote host. I send a msg using sendto, and then wait for
> a reply using recvfrom, but I would like to be able to rapidly
> timeout the rcvfrom if the remote host is down.
> 
> The async I/O set of commands aio_* offer what looks like
> the perfect solution, but they require that I use aio_read
> and aio_write (equivalent to read(2) and write(2) ) rather
> than sendto/recvfrom.
> 
> I'd rather not sit in a loop waiting for a reply with
> non-blocking I/O enabled. I'd much prefer to use blocking
> I/O and have the recvfom come back to me either when the
> input has completed, or it has timed out.
> 
> Any suggestions how I might achieve this?
> 
> Cheers,
> Terry
> 

Have you considered using non-blocking send/recv and then use select to
"wait" on the socket(s)?
It's a far cheaper (performance wise) solution.

- Gilboa




More information about the fedora-list mailing list