Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > UDP Chat на инди v10.1.5


Автор: Sanchezzz 21.2.2007, 20:05
Добрый день всем или ночь кто откликнулся на мою проблему…
Суть токая использую индейцев 10.1.5 компоненты idUDPClient и idUDPServer на одной форме тб клиент сервер в одном флаконе…
Свойства клиента 
Active = True
 BufferSize = 8000
 BroadcastEnabled = True
 OnConnected = ClientConnected
 Host = '255.255.255.255' или 127.255.255.255
 Port = 3000
 ReceiveTimeout = 0

Свойства сервера есть 2 варианта  второй мне больше нравится…
Active = True
BufferSize = 8000
BroadcastEnabled = True
Bindings = <> //я так понял не обязательное свойство походу он сам туда добавляет подключенных клиентов
DefaultPort = 3000

//Код Сервака
//Вариант 1:
Код

procedure TForm1.ServerUDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
var
Data:string;
begin
data:='';
Data:=server.ReceiveString(-1); //-1 это задержка если по хелпу смотреть..
Memo1.lines.add(‘Data’);
End;

//2 вариант:
procedure TForm1.ServerUDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
var
Data: string;
begin
data:='';
Data:= bytestostring(ADATA);
Memo1.lines.add(‘DATA’);
End;

Не приходят ходят данные клиентам поправка сомом у себе приходят .. а другим нет
По нету  тоже не приходят … не говоря по сети в чем может быть проблема мож что то с вети надо настроить уже все фаирволы по отключал пробывал и стандартные порты ставить кр сил больше нет моих спасите.. или лучше использовать серверсокет но на них много текста не отправишь на udp до 1 мб сомому отпровлял а на сокетах количество кб или б 

Автор: DYUMON 10.3.2007, 21:34
Забей на все в раздел uses подключаешь IdSocketHandle
а на событие принятия данных делаешь
Код

var 
s: string;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
begin
StringFormatedStream:= TStringStream.Create('');
  StringFormatedStream.CopyFrom(AData,AData.Size);
  coolmemo1.Lines.Add(StringFormatedStream.DataString);
  Abinding.SendTo(Abinding.PeerIP,Abinding.PeerPort,s[1],Length(s));
  StringFormatedStream.Free;
end;

должно проканать

Автор: Sanchezzz 14.3.2007, 21:28
этот кад под 9 версию а уменя 10 я и добовлял IdSocketHandle и idClobal чтоб на TBytes не ругался
короче вопрос решон я реализовал на DXPlay там было проше и возможности тоже не плохие...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)