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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать UDP Server 
:(
    Опции темы
fippo
Дата 28.11.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите, как можно создать UDP Server, с возможностью отправки сообщений клиентам? Поставил IDudpServer, он сообщения принимает, а как с помощью него отправлять сообщения подключенным клиентам? Воткнул IDudpClient, с помощью него получается отправлять, но проблема в том, что это работает только в локальной сети. При попытке отправить с пом. IDudpClient за нат ничё не выходит.
Игровые сервера как-то отправляют сообщения клиентам без внешних IP, вот мне интересно, как такое возможно, и как это реализовать средствами delpi?
PM MAIL   Вверх
darkmamba
Дата 28.11.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это на Indy фэйк CS сервера smile 

udp.Binding.PeerIP и udp.Binding.PeerPort это обратный адрес и порт клиента, а
udp.Binding.IP и udp.Binding.Port это адрес ипорт твоего сервера.

Код

...
procedure TForm1.UDPUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
str : TstringStream;
pkt : string;
begin
str:=tstringstream.Create('');
  try
    str.CopyFrom(AData, AData.Size);
    pkt:=str.DataString;
  finally
    str.Free;
  end;
IF pos(#$FF+#$FF+#$FF+#$FF+#$54+'Source Engine Query'+#$00,pkt)=1 THEN BEGIN
  udp.Send(udp.Binding.PeerIP,udp.Binding.PeerPort,
    #$FF+#$FF+#$FF+#$FF+#$6D+
    'localhost:port'+#$00+  //address
    'Fake Server Name'+#$00+  // Name
    'Map'+#$00+     // map
    'DirectoryMod'+#$00+  // cstrike
    'Game Name'+#$00+ // Counter-Strike
    #$AB+ // Current Players
    #$BB+ // Max Players
    #$2F+ // Number bots ? hz, const
    #$64+ // 'l' for listen, 'd' for dedicated, 'p' for SourceTV
    #$6C+ // Host operating system. 'l' for Linux, 'w' for Windows
    #$01+ // Password, 0x01 is protected
    #$01+  // If set to 0x01, this server use ModInfo
    'FakeServer.com'+#$00 // other info
    );
//  memo1.Lines.Add('#ClientIP: '+udp.Binding.PeerIP+#13#10+'#Take fake data :)');
END;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
udp.Active:=true;
{if udp.Active=false then begin
  memo1.Lines.Add('Error');
  exit;
end
else begin
  memo1.Lines.Add('Server Startup');
  memo1.Lines.Add('IP:'+udp.Binding.IP);
  memo1.Lines.Add('Port:'+IntToStr(udp.Binding.Port));
end;    }
end;

end.


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


Новичок



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

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



Спасибо, это как раз то что мне нужно  smile Я правда не фейк CS пишу, а свою сетевую игрушку smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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