Я пишу приложение для проверки сетевого драйвера для обработки поврежденных данных. И я думал об отправке этих данных с использованием необработанного сокета, чтобы они не были исправлены стеком TCP-IP отправляющего компьютера.
Я пишу это приложение исключительно для Linux. У меня есть примеры кода использования необработанных сокетов в системных вызовах, но я действительно хотел бы, чтобы мой тест был как можно более динамичным, и написал большинство, если не все, на Python.
Я немного погуглил в Интернете объяснения и примеры использования сырых сокетов в python, но не нашел ничего по-настоящему поучительного. Просто очень старый пример кода, который демонстрирует идею, но ни в коем случае не работает.
Из того, что я понял, использование Raw Socket в Python по семантике практически идентично использованию UNIX-сокета raw, но без struct
s, определяющих структуру пакетов.
Мне было интересно, будет ли лучше даже написать не тестовую часть сокета теста на Python, а на C с системными вызовами, и вызвать его из основного кода Python?