On Sun, 22 Dec 2019 23:01:23 -0800
Germain Le Chapelain <[email protected]> wrote:

> I'm not saying poll() is wrong but it's more that from the other bits
> (different errors checking, sigpipe) , it felt to me like you are
> re-implementing TCP.

Not at all. I/O multiplexing with select()/poll()/epoll()/kqueue(),
etc. is a pretty standard way of handling multiple file descriptors.

Regardless of what you do, it will not change the behaviour of send()
syscall.

I'm curious, if you use two threads on a blocking socket, how do you
implement I/O timeout in order to prevent a rouge client from running
DoS attacks (read/write a few bytes of data, then go to sleep for a few
minutes) on platforms like Solaris, which may not support SO_RCVTIMEO
and SO_SNDTIMEO socket options?

Reply via email to