Известно несколько причин, требующих снизить количество сетевых операций вашего приложения. Одна из них - это, очевидно, производительность, поскольку сетевые операции очень ``дорогостоящие'' в сравнении с локальными. Другая причина связана с некоторыми частными ограничениями кода TCP/IP ядра: за короткое время невозможно сделать слишком много сетевых соединений: через некоторое время ядро выдаст: ``Resource temporarily not available'' и ваше приложение завершится ненормально. Вы столкнетесь с этим, если имеете очень быстрые компьютеры, но не сеть.
Ниже приводятся некоторые рекомендации, которые надо учитывать при программировании DIPC:
fd_set fd;
for(; ; ;)
{
/* сначала проверка семафора, затем приостановка */
check_the_semaphore_and_break_if_needed(...);
/* замечание: Вы должны выполнить инициализацию
внутри цикла */
tv.tv_sec = 0;
/* ожидание в течение 0.5 секунды = 2 семафора
за секунду */
tv.tv_usec = 0.5 * 1000000;
FD_ZERO(&fd);
select(FD_SETSIZE, &fd, NULL, NULL, &tv);
}