I am trying to understand why IOCP is used. I can think of two reasons:
WSARecv()will not block, then I can handle 1000s of clients without having to create a new thread for each client (also, there is a limit on how many threads you can create, and so the number of clients you can handle will be limited).
WSASend()will not block, then when I want to send a large file, I don’t have to create a new thread to send it (if I did not create a new thread then the UI thread will block of course).
What other reasons are there to use IOCP?