Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка пакета, нужно отправить пакет по SMPP 
:(
    Опции темы
7tk
Дата 5.4.2005, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Скажите как можно отправить пакет по протоколу SMPP в Delphi,
Структура пакета:
PDU Header(mandatory):
-command length -4 octets
-command id
-command status
-sequence number
PDU Body (Optional)
- Body

И как разобрать полученный пакет на эти параметры.



PM MAIL   Вверх
Snowy
Дата 5.4.2005, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



как это делается:
1. Создаешь packed record с нужной тебе структурой.
2. Заполняешь поля.
3. Создаешь соединение TIdTCPClient'ом.
4. Создаешь стрим, отправляешь в него свой пакет. При необходимости несколько пакетов.
5. Отправляешь стрим в соединение через WriteStream
Получение.
Через ReadStream читаешь в стрим. Потом согласно RTF нарезаешь на нужные структуры.

PM MAIL   Вверх
7tk
Дата 5.4.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Спасибо.
А как создать стрим и отправить в него свой пакет
PM MAIL   Вверх
Snowy
Дата 5.4.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код

procedure SendSMPP;
type
  MyPacket=packed record // здесь описываем необходимую структуру пакета
    data1: word; // какие-то поля пакета
    data2: byte;  // рисуем здесь поля согласно структуре
    // ......
  end;
var
  s: TMemoryStream; // стрим с данными
  p: MyPacket; // наш пакет
  tcp: TIdTCPClient; // соединение
begin
  tcp:=TIdTCPClient.Create(nil); // создаем соединение
  tcp.port:=2202; tcp.Host:='hostname'; // настройки на машину и порт, которой отправляем
  try
    tcp.Connect; // пытаемся соедениться
    s:=TMemoryStream.Create; // создаем стрим
    p.data1:=22; p.data2:=18; ........ // первый пакет
    s.Write(@p,SizeOf(p)); // загодяем в стрим
    p.data1:=1892; p.data2:=99; ........ // второй пакет
    s.Write(@p,SizeOf(p)); // загоняем в стрим
    // ..... загоняем в стрим подобным образом все необходимые данные
    // потом все это отправляем
    tcp.WriteStream(s,true,s.Size,false); // отправка данных в сеть
    tcp.Disconnect; // отключаемся
  except // если не удалось
    ShowMessage('Не могу соедениться');
  end;
  s.Free; tcp.Free; // уничтожаем стрим и соединение
end;

Вот таким образом можно реализовать практически любой протокол.
Главное описать его структуру и заполнить ее необходимыми данными, согласно спецификации.
PM MAIL   Вверх
7tk
Дата 5.4.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.4.2005

Репутация: нет
Всего: нет



Snowy, большое спасибо
PM MAIL   Вверх
Snowy
Дата 8.4.2005, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Вот, наткнулся на готовый компонент: http://bib.com.ua/info1609.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.