Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как установить связь по протоколу UDP с сервером движков hl (cs [D7, XP]


ZeaL ©   (2011-02-04 08:55:00) 

уже ломаю голову неск. месяцев, перепробовал все. но ничего не выходит.
знающие люди помогите разобраться

то есть мне главное установить связь с сервером. и отправить на него строку.
#$FF + #$FF + #$FF + #$FF+'TSource Engine Query'

после чего мне должен придти ответ в виде данных о сервере (список игроков, карта, протокол, название)

пробовал через IndyUDPServer.

ну и наверное можно добавить то что я писал в код

procedure TForm1.Button1Click(Sender: TObject);
begin
try
IdUDPServer1.Active:=true;
IdUDPServer1.Send('IP',PORT,#$FF + #$FF + #$FF + #$FF+'TSource Engine Query');
except
end;
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
begin
Memo1.Lines.LoadFromStream(AData);
end;


RWolf   (2011-03-05 09:10:00) [1]


> Все тему можно считать закрытой!

разумеется, нельзя — этот код не решает поставленной задачи.
протокол получения списка игроков в контре малость посложнее, чем «передать пакет–принять пакет».


han_malign   (2011-03-05 08:58:00) [2]


> то есть мне главное установить связь с сервером. и отправить на него строку.

- угу, то есть как пройти авторизацию/аутентификацию(и возможно еще какую-нибудь противоботовую защиту) ты знаешь?

Для начала посмотрел бы трафик снифером, и хотя бы убедился - что там действительно UDP используется...


> что для связи с сервером используется клиент.

- UDP - протокол без установления соединения(connectionless) - никаких клиентов и серверов нет.
Там всего то (winsock):
 bind, sendto, recvfrom и по вкусу ioctlsocket(... FIONBIO/FIONREAD ...), да setsockopt(... SO_BROADCAST ...)
- а дальше либо придет пакет, либо заблудится - уж как получится...


sniknik   (2011-03-05 08:03:00) [3]

> Все тему можно считать закрытой!
а что у тебя изменилось с точки зрения работы с UDP а не отображения принятого?

вообще проблемы типа "ничего не выходит" так не решаются, обычно... тут больше метод из [3] подходит.


Плохиш   (2011-03-05 03:54:00) [4]


> Плохиш я бы на твоем месте не острил!

Сначала попади на него.

> Если не знаешь программирование лучше молчи!

Где уж мне до вас, крутых программеров..


Данил   (2011-03-05 01:47:00) [5]

Удалено модератором
Примечание: Автор сам решит для своей темы, и ты не приказывай кому молчать, а кому нет, это все против тебя обернется в первую очередь


Сергей М.   (2011-02-04 09:59:00) [6]

Быстрее, проще и дешевле нанять программиста


Плохиш   (2011-02-04 09:21:00) [7]

Несколько меесяцев не может понять, что для связи с сервером используется клиент.


Dennis I. Komarov   (2011-02-04 09:11:00) [8]

см. тут:

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1287578394&n=4


Наверх

Титульная страница Поиск, карта сайта Написать письмо