Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.04.2011, 21:55
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию Мониторинг серверов cs 1.6

Не подскажете как сделать subj?
Ответить с цитированием
  #2  
Старый 17.04.2011, 08:39
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

есть такое, работает правда только по локалке (вроде), протокол тожа не помню, зато есть функция прибить сервер:
http://data.cod.ru/97710
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 23.04.2011, 18:36
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

Я узнал, что нужно отослать запрос по UPD на мастерсервер, чтобы получить список серверов. Вот пример запроса:
Код:
0000   31 FF 30 2E 30 2E 30 2E    1.0.0.0.
0008   30 3A 30 00 00             0:0..
У меня вопросы?
1) Как собственно отослать запрос при помощи Indy?
2) Как принять ответ? И куда он сохранится?
Ответить с цитированием
  #4  
Старый 24.04.2011, 10:18
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не знаю где ты такое взял. у меня вот так опрос идет:
Код:
IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27015);

Цитата:
A2S_INFO
Request format
Server info can be requested by sending the following byte values in a UDP packet to the server. FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 ÿÿÿÿTSource Engi
6E 65 20 51 75 65 72 79 00 ne Query
i.e. -1 (int), 'T' (byte), "Source Engine Query" (string)
http://developer.valvesoftware.com/wiki/Server_Queries
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 24.04.2011, 19:53
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

Мне все равно не очень понятно. Можешь дать пример кода?
Ответить с цитированием
  #6  
Старый 25.04.2011, 10:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27010);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27011);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27012);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27013);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27014);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27015);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27016);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27017);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27018);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27019);
  IdUDPServer.Broadcast(#255#255#255#255'TSource Engine Query'#0, 27020);
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 01.05.2011 в 10:34.
Ответить с цитированием
  #7  
Старый 26.04.2011, 19:59
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

А как получить ответ сервера в файл\мемо?
Ответить с цитированием
  #8  
Старый 26.04.2011, 20:06
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

у TIdUDPServer событие OnUDPRead
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 28.04.2011, 22:28
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

А что принимать-то?
Ответить с цитированием
  #10  
Старый 01.05.2011, 10:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

сервер ответит чем-нить подобным:
Цитата:
'яяяяm10.4.84.102:27015'#0'[Counter-Strike 1.6 DS]'#0'de_nonstop'#0'cstrike'#0'Counter-Strike'#0#$F' /dw'#0#1'www.counter-strike.net'#0#0#0#1#0#0#0#0'ћч'#$A#0#1#0#$F
красным выделена кое-какая инфа сервера: ip : port, dedserv name, map, mod Counter-Strike
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 01.05.2011, 17:32
Alex_Gordon Alex_Gordon вне форума
Прохожий
 
Регистрация: 21.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

Ты говоришь событие OnUdpRead, какой код для принятия ответа в мемо?
Я не понимаю, как считать ответ из OnUdpRead
Ответить с цитированием
  #12  
Старый 01.05.2011, 18:35
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну что-то типа этого:
Код:
procedure TFormMain.IdUDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  c: Char;
  s: String;
begin
  MemoServers.Lines.Add(ABinding.PeerIP+':'+IntToStr(ABinding.PeerPort));
  while AData.Read(c, 1)<>0 do if (c>=#32) and (c<=#255) then s:=s+c;
  // s
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 09.05.2011, 08:48
zeal1209 zeal1209 вне форума
Прохожий
 
Регистрация: 09.05.2011
Сообщения: 1
Репутация: 10
По умолчанию

можете пожалуйста выложить полную процедуру отправки данных на сервер.

да и еще: у меня в в процедуре IdUDPServerUDPRead вместо AData: TStream стоит AData: TBytes. как с этим быть?
Ответить с цитированием
Ответ



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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2020

ВКонтакте   Facebook   Twitter