49306956



Обмен между TIdUDPClient и TIdUDPServer в обоих направлениях
Автор Сообщение
all__ Не на форуме
Админ
*******

Сообщений: 855
Зарегистрирован: 01.2010
Сообщение: #1
Обмен между TIdUDPClient и TIdUDPServer в обоих направлениях
Хоть udp и считается однонаправленным протоколом, но сетевые игры ведут обмен пакетами в обоих направлениях.
Решил эту задачу так:

Так сервер принимает и формирует ответ:
PHP код:
procedure TForm1.udpSvUDPRead(SenderTObjectADataTStream;
  
ABindingTIdSocketHandle);
var
  
strm:TStringStream;
  
str:string;
begin
  strm
:=TStringStream.Create('');
  
strm.CopyFrom(ADataAData.Size);
  
svLog.Lines.Add('Handle:'+inttostr(ABinding.Handle));
  
svLog.Lines.Add('Size:'+inttostr(AData.Size));
  
svLog.Lines.Add('Text:'+strm.DataString);
  
str:='Server answer';
  
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,str[1],Length(str));
  
strm.Free;
end

Так клиент отправляет запрос на сервер и принимает ответ.
PHP код:
procedure TForm1.btn3Click(SenderTObject);
begin
  udpCl1
.Send('Client message');
  
clLog.Lines.Add(udpCl1.ReceiveString);
end

Скачать пример:

.zip  dUDPtest.zip (Размер: 7.14 Кб / Загрузок: 87)

Лучшая благодарность - "Мне нравится", +1 или Like! Вверху страницы.
14.12.2011 15:54
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Получить текст между тегами, или произвольными строками all__ 0 1 370 03.05.2010 8:49
Посл. сообщение: all__