Windows IOCP - какое преимущество для односокетного приложения?

Насколько я понимаю IOCP в Windows Server 2003/2008 и программировании на C++, они являются более или менее высокопроизводительным способом обслуживания либо нескольких сокетов вместо выбора, либо связывания нескольких потоков для обслуживания этих запросов.

Однако, если моя программа имеет только один сокет и с учетом других ограничений обычно читает один пакет, выполняет работу, а затем ждет другой пакет, IOCP покупает мне что-нибудь?

Такое ощущение, что простое сидение в recv() или эквиваленте было бы, по крайней мере, таким же быстрым, если не быстрее в этом конкретном случае?


person sdg    schedule 29.09.2010    source источник


Ответы (2)


Нет, в вашем случае дополнительная сложность IOCP не кажется оправданной. По крайней мере, если вы не ожидаете, что ваша программа станет более сложной в ближайшем будущем...

person Kaelin Colclasure    schedule 29.09.2010

Нет, в такой ситуации IOCP вряд ли добавит что-то, кроме сложности. Конечно, если вы уже знакомы с IOCP и у вас уже есть рабочий код, который вы могли бы использовать для этой системы с одним соединением, то нет реальной причины не использовать IOCP, но если вы никогда не использовали его раньше, это не стоило бы усилий. чтобы узнать это для системы, такой как вы описываете.

person Len Holgate    schedule 29.09.2010