By Wolfgang Keller
Originally written 2018-07-10
Last modified 2024-02-17
epoll
(Linux) or kqueue
(FreeBSD, OS X) instead of poll
for improved scalability. This is unluckily not considered in this text.SO_REUSEADDR
and SO_REUSEPORT
: linux - How do SO_REUSEADDR and SO_REUSEPORT differ? - Stack Overflow< [visited 2022-08-07T14:29:19Z]SO_LINGER
: linux - What really is the "linger time" that can be set with SO_LINGER on sockets? - Stack Overflow [visited 2022-08-07T14:29:29Z]When using Windows, it is best to use an I/O Completion Port (IOCP) for well-scaling network code.
At Dr.Dobbs has had at least 2 articles on it. https://www.drdobbs.com/open-source... | Hacker News [visited 2021-02-13T20:04:00Z] - also consider its parent Sadly the Windows asynchronous (or something, I never quite got it) networking A... | Hacker News [visited 2021-02-13T20:04:38Z] - the author whizzter mentions the following two Dr.Dobb's links:
He also writes
I remember chatting in the fringes when nodeJS was doing their proper win32 porting and they did have some issues getting things stable due to lack of documentation but iirc got some help from MS so the libuv code should be usable as a reference for behaviours (As well as being fairly battle tested by now).
and links to libuv/src/win at v1.x · libuv/libuv [visited 2021-02-13T20:08:12Z].