| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Перехват SMPP пакетов |
| Автор: V1tal1us 26.3.2007, 02:10 | ||
| Здравствуйте уважаемые. Задача такова: На серверное приложение поступает SMPP пакет (Short message peer-to-peer protocol (SMPP) — протокол, описывающий взаимодействие конечного клиента с SMS-сервером. Используется для передачи SMS и USSD сообщений, как правило в системах VAS.), этот пакет Я должен словит -> изменить -> отправить обратно клиенту пославшему запрос. В качества инструмента Я выбрал «C++Builder 6» , перехватывать пакеты буду с помощью сокетов. Вступление: Как это всё сделать??? ))) Работать с сокетами умею, но одно дело файл переслать или чат простенький сделать, а тут задачка посложнее и поинтереснее. При передаче PDU пакета («PDU (protocol data units, пакетов данных протокола) передаваемой на уровне 4 OSI (TCP/IP сессии или X.25 SVC3). PDU имеют бинарное представление для повышения эффективности передачи. Обмен пакетами может происходить как синхронно (после отправки запроса дальнейший обмен пакетами приостанавливается до получения ответа), так и асинхронно (запросы отправляются без задержек, обработка ответов происходит по мере их поступления).») сервер принимает через String strClientRequest = Socket->ReceiveText(); непонятно что, по спецификации скорее всего это бинарник. Через TMemoryStream,сохраняю полученный пакет в файл ( в идеале, нужно обойтись без файла, но пока что Я не знаю как),и естественно когда открыть этот файл с помощю блокнота ,то ничего мы там не увидим, кроме как абракадабры)) Но а вот если через хекс редактор, то нарисуется совсем другая картина : Hex.jpg Кусок кода,который Я успользую :
Собственно вопрос: Как выдрать из данного файла нужную мне информацию(первые 4 октета ), и изменить её, или как обойтись без него и напрямую работать с полученным пакетом? Если кто уже работал с SMPP,то пожалуйста поделитесь своим опытом и знаниями,вам потом воздастся)) |