Now that's one area where Windows really differs. You can't write a high performance server for Windows without using IOCP, which couldn't be more different from what every other platform has for that kind of thing (epoll, kqueue, /dev/poll, ...)
It was interesting watching node/libuv face all the same problems I did when originally trying to abstract over this.