У меня есть небольшой проект, над которым я работаю в C ++, и из-за характера того, что он делает, мне нужно вставлять пакеты в живой поток TCP.(Цель достаточно невинна, http://ee.forumify.com/viewtopic.php?id=3299, если вы ДОЛЖНЫ знать) Я создаю редактор уровней для игры, и из-за характера рукопожатий я не могу просто установить новое соединение с высокимбиблиотека уровня, такая как WinSock.До сих пор он полагался на Winsock Packet Editor для выполнения грязной работы, но если бы я позволил приложению справиться со всем этим, это сделало бы всех счастливыми.
Поэтому мой вопрос таков: есть ли APIгде-нибудь, что позволит мне взять под контроль живой поток TCP, и желательно тот, который сохраняет его действительным после его завершения?И я бы предпочел не вводить какие-либо библиотеки DLL.Кроме того, Detours нет-нет, так как я использую GCC / Mingw.
Я поиграл с WinPCap и у меня есть некоторый рабочий код (я могу собрать пакет, и из этого генерировать правильный пакетотправить), но так как он работает на таком низком уровне, я не могу предвидеть все потенциальные протоколы, которые может использовать конечный пользователь.Да, есть вероятность, что они будут использовать IPv4 через Ethernet, но как насчет тех людей, которые все еще используют PPP или какой-то другой непонятный протокол?Кроме того, клиентское приложение разрывает соединение после того, как с ним выполнено мое, поскольку последние значения идентификаторов в пакетах изменились, и клиент предполагает, что оно отключилось.
Так что, если кто-то может предоставить высокийTCP потоковый манипулятор, я был бы очень счастлив.Если нет, я просто продолжу возиться с WinPCap и скажу всем пользователям коммутируемого доступа, чтобы они получили лучший интернет.
Целевая платформа: Microsoft Windows XP через Windows 7