As I understand IOCP under Windows Server 2003/2008 and C++ programming, they are more-or-less the highest performance way to service either multiple sockets, instead of select, or to tie together multiple threads to service those requests.
If my program has but a single socket however, and given other constraints will generally read one packet, do work, then wait for another packet, does IOCP buy me anything?
It feels like just sitting in a recv() or equivalent would be at least as fast, if not faster in this specific case?
Nope, in your case the extra complexity of IOCP doesn’t sound warranted. At least, not unless you anticipate your program becoming more sophisticated in the near future…