Не знаю, правильно ли я понимаю ваши потребности. «Симулирование» можно представить двумя способами. Тем не менее, вот ответ.
Каков дизайн вашего приложения? Если это «просто» (или «наивно»), то есть вы проверяете фактические порты на машине и *1003* выполняете действия после этого, тогда проблема симуляции заключается в этом проекте.
(остальное основано на этом предположении)
Ваш дизайн должен быть гораздо более модульным, устраняя проблемы и разделяя проблемы.
В основном в вашем приложении есть три проблемы: мониторинг физических портов, принятие решений на основе активности логических портов (здесь разделение) и, наконец, поведение уведомлений (отправка электронных писем / что угодно ).
Каждая из этих частей должна быть автономной. Тестируется как есть, без необходимости в других частях приложения.
Результат этой конструкции: тривиальное моделирование. Для части «симуляция» вам нужно только смоделировать вторую проблему, а не первую.
Возможное решение: в компании, в которой я работал некоторое время назад, они создавали низкоуровневое сетевое приложение. Они использовали доску очень успешно. Они заполнили доску событиями, связанными с сетью, и код отреагировал на эти события, возможно, создав новые, которые затем были возвращены на аппаратное обеспечение. Это позволяет им элегантно тестировать приложение в различных сценариях сетевых действий (например, вставлять / извлекать сетевую карту и т. Д.), Не пытаясь на самом деле мучительно фактически моделировать его.
Если ваш вопрос пытался действительно имитировать физическую активность на портах, кто-то, вероятно, может предложить какие-нибудь белые шляпы "имитирующие атаку" продукты / услуги. Возможно, вам понадобится второй компьютер для выдачи сетевой активности извне (поскольку вы, вероятно, отличаете активность локального хоста от внешней сетевой активности).