Код C ++ компилируется до машинных инструкций, которые компилируются как раз вовремя (JIT), а код C # компилируется до среды выполнения Comman Language (CLR), которая представляет собой .NET Framework от Microsoft, обеспечивает хорошее управление памятью и управление потоками.
Решение Ian походит на довольно хорошее долгосрочное решение, но звучало немного включенным для просто некоторого быстрого тестирования. (находящий другую машину, поднимая трубку его, возможно настраивая маршрутизатор наполняют и т.д.),
Я закончил тем просто, что использовал Сетевой Ограничитель и случайным образом установил предел к чему-то глупо низко вручную (как 1 байт/секунда), и это, кажется, достаточно для наших потребностей.
Я использовал инструмент, названный netem, который работает на Linux. Это позволяет Вам увеличивать потерю пакетов на уровне данного процента, представлять задержки в пакетах и пакетном переупорядочении дескриптора. В основном это разработано для эмуляции различных сетей.
Все необходимо разбудить его и выполнение, является запасной машиной для установки Linux на с несколькими платами Ethernet. Поднимите трубку его как мост и выполните netem между ними. Должно быть довольно просто сделать. Я использовал его для своего Университетского проекта, имеющего опыт Linux, но я, вероятно, все еще получил все инструкции по установке где-нибудь.
http://snad.ncsl.nist.gov/nistnet/
Это немного сложно для установки, но работает очень хорошо.