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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 20:59   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию Расшифровать ответ сервера

Хочу сделать мониторинг сервера CSS. Использую
Код:
procedure TForm1.ComboBox1Select(Sender: TObject);
var serp, port, server: string;
begin
serp:=form1.ComboBox1.Text;
port:=copy(serp,(length(serp)-4),6);
server:=copy(serp,0,(length(serp)-6));
IdUDPClient1.ReceiveTimeout:=2;
IdUDPClient1.Host:=server;
IdUDPClient1.Port:=strtoint(port);
IdUDPClient1.Active:= True;

IdUDPClient1.Send(char(255)+char(255)+char(255)+char(255)+'TSource Engine Query'+Chr(0));

Memo1.Text:=(IdUDPClient1.ReceiveString(120000));
IdUDPClient1.Active:=False;
end;
В ответ приходит: яяяяI[PENZA]Shouldercannon AvP2 CSS Zombie reloaded 3.0.0 Beta 1 No-Steam

А вот как видит тот же самый ответ Сниффер: (скрин)

Вопрос заключается в следующем: как средствами Delphi вывести нормально ответ как на крине в самом низу (то что выделено)?
Изображения
Тип файла: gif Wireshark.gif (74.6 Кб, 172 просмотров)

Последний раз редактировалось Shouldercannon; 24.11.2009 в 09:42.
Shouldercannon вне форума Ответить с цитированием
Старый 23.11.2009, 21:24   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

inttohex и представление символа в его коде вам в помощь.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 11:40   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Хм оказывается ответ в Хексах приходит. Значит наверно надо так HexToStr?
Shouldercannon вне форума Ответить с цитированием
Старый 24.11.2009, 12:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Значит наверно надо так HexToStr?
Ну вообще-то помоему сначала переводят HEX в число StrToint а уж потом в символ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.11.2009, 12:09   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

эм.. ответ вам приходит в символьном или бинарном виде, это уже компонент интерпретирует... то что я вижу внизу это представление в hex, а если вы для чтения используете "IdUDPClient1.ReceiveString" он вам в стринге и выдаст... у UDP есть еще метод:
Код:
procedure Tcv.UDPDataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var msg: TStringStream;
    s: string;
begin
 msg:= TStringStream.Create('');
 msg.Position:= 0;
 UDP.ReadStream(msg); // вот вам и бинарный поток
 s:= msg.DataString;
 
 msg.Free
end;

upd
-------

Цитата:
UDP здесь выступает в роли чего?
дык, це мiй компонент UDPClient
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 24.11.2009 в 15:25.
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 15:22   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Я немного не понял вот эту строку
Код:
UDP.ReadStream(msg); // вот вам и бинарный поток
UDP здесь выступает в роли чего?

На строке
Код:
IdUDPClient1.ReadStream(msg); // вот вам и бинарный поток
возникает ошибка [Error] Unit1.pas(52): Undeclared identifier: 'ReadStream'. Где нужно объявить ReadStream?

Последний раз редактировалось Stilet; 25.11.2009 в 09:21.
Shouldercannon вне форума Ответить с цитированием
Старый 24.11.2009, 17:52   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
IdUDPClient1
у вас компонент от indy, я же привел вам в качестве примера - UDPClient с поставки delphi6
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 18:01   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Я сейчас говорю про ReadStream, ругается компилятор говорит, что ReadStream не объявлен. Похоже надо прописать что-то в Uses.

Последний раз редактировалось Shouldercannon; 24.11.2009 в 18:04.
Shouldercannon вне форума Ответить с цитированием
Старый 24.11.2009, 20:07   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

компоненты indy не использую в работе....
свойство ReadStream в вашем может просто отсутствовать, гляньте сами после точки <Ctr>+<Space> и появиться выпадающий список со всеми доступными методами вашего компонента (а вообще после точки он и так появляется)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 20:21   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

У меня Delphi 7 и в выпадающем меню нет ReadStream вообще нет ничего с Read
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Http ответ сервера lennon Свободное общение 4 03.08.2009 02:34
Ответ от сервера. mustang007 Работа с сетью в Delphi 3 23.05.2009 10:33
Как принять ответ от сервера? (делфи) zotox Помощь студентам 2 11.11.2008 13:49
Какой ответ сервера в xmlHttp.responseText mogul82 PHP 6 02.11.2008 10:12
TClientSocket ответ от сервера JRcoker Работа с сетью в Delphi 10 02.10.2008 01:55