Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2012, 16:25   #1
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
Вопрос Работа с протоколами и формирование пакета

Доброго времени суток. Возник вопрос о работе с устройством. Задача написать клиентскую часть для авторизации на сервере и дальнейшей работе с ним.
Имеется протокол следующего вида:

ЗАГОВОК ПАКЕТА
1 ID
2 2ID
3 длина пакета
Д А Н Н Ы Е
4 код команды (предоставлена)
5 параметры
Контр сумма
1 CRC

Использую ClientSocket и ServerSocket.

Формат запроса на сервер:
WORD
WORD
STR
BYTE
STR

Отправка данных методом послания строки ни к чему не приводит, соединение устанавливается. Вообщем вопрос в следующем объясните пожалуйста как сформировать и отправить пакет для данного сервера.
Насколько понимаю, требуется создать структуру типа записи(record) либо массив.

Спасибо заранее.

P.S. На просторах инэта понятного для себя не нашёл, кроме примера RAW ip пакет и аналогичного копи паста.
s_vitaly вне форума Ответить с цитированием
Старый 18.06.2012, 18:13   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Имеется протокол следующего вида

это не протокол, а достаточно бессмысленный набор слов.


> Формат запроса на сервер

опять же, это не формат, а инфантильный набор латинских букв.
в каком порядке идут байты в WORD? какой именно формат у загадочного STR?

ответов нет. А не имея ответов, трудно построить что-то работающее.


Мой совет: если есть работающий клиент, снифером сканируете пакеты и пытаетесь подогнать под то, что выше. Если такого клиента нет, ищите вменяемое описание протокола и формата пакетов.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 19.06.2012, 12:32   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
это не протокол, а достаточно бессмысленный набор слов.
Не полный протокол. Если сервер имеет требование к такому оформлению значит это протокол передачи данных, а протоколы определяют правила по которым принамаются,отправляются, отбрасываются данные в строго определенном формате.

ТС, обычно шапка и данные это 2 структуры, у васже не понятно там 2 или все в одном.
Я привел пример для шапки и данных в отдельности.

Примерно так:
Код:
type
pPacketData=^TPacketData;
TPacketData=record 
 Command:string[250];
 CommandParams:string[250];
end;

pPacket=^TPacket;  
TPacket=record
   id:Cardinal;
   id2:cardinal;
   Data:TPackedData;
   Length:cardinal;
   CRC:string[5];
  end;
Формируете TPacket, и посылаете на сервер. Вооружитесь WireShark'ом для проверки,что посылаем и что нам отвечают.

Последний раз редактировалось Человек_Борща; 19.06.2012 в 12:36.
Человек_Борща вне форума Ответить с цитированием
Старый 19.06.2012, 15:06   #4
s_vitaly
 
Регистрация: 01.06.2010
Сообщений: 6
Хорошо

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Не полный протокол. Если сервер имеет требование к такому оформлению значит это протокол передачи данных, а протоколы определяют правила по которым принамаются,отправляются, отбрасываются данные в строго определенном формате.

ТС, обычно шапка и данные это 2 структуры, у васже не понятно там 2 или все в одном.
Я привел пример для шапки и данных в отдельности.

Примерно так:
Код:
type
pPacketData=^TPacketData;
TPacketData=record 
 Command:string[250];
 CommandParams:string[250];
end;

pPacket=^TPacket;  
TPacket=record
   id:Cardinal;
   id2:cardinal;
   Data:TPackedData;
   Length:cardinal;
   CRC:string[5];
  end;
Формируете TPacket, и посылаете на сервер. Вооружитесь WireShark'ом для проверки,что посылаем и что нам отвечают.
Благодарю за пример, буду пробовать, спасибо ещё раз!
s_vitaly вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с протоколами NetBIOS Quixley Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2012 04:39
как работать с интернет протоколами и разными прокси maloun Общие вопросы Delphi 7 07.09.2011 20:48
Работа с записями - ввод информации и формирование списков по заданным условиям (на Pascal) _FENDER_ Помощь студентам 1 10.04.2011 19:16
Работа с протоколами в С++ Magist Общие вопросы C/C++ 0 20.12.2010 03:58
Формирование пакета WinPcap flatgad Работа с сетью в Delphi 1 24.07.2010 20:24