RAD Studio интернет чат

Добрый день! Стал искать интернет чат и вроде нашел но сообщения отправляться в никуда
Client

unit Unit2;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, FMX.StdCtrls, FMX.Edit,
  FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo;
 
type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    IdUDPClient1: TIdUDPClient;
    procedure Button1Click(Sender: TObject);
    procedure IdUDPClient1Connected(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.fmx}
 
procedure TForm2.Button1Click(Sender: TObject);
begin
 if Edit1.Text<>'' then
              begin
 
                    IdUDPClient1.BufferSize:=length(Edit1.Text);
                    IdUDPClient1.Send(edit1.Text); //отправка сообщени¤ в сеть
                    Edit1.Text:='';
 
          end;
 end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
 
end;
 
procedure TForm2.IdUDPClient1Connected(Sender: TObject);
begin
 
  IdUDPClient1.Send('Rady');
 
 
end;
 
end.

Server

unit yadro;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, IdUDPClient,
  IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, FMX.StdCtrls, FMX.Edit,
  FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, IdGlobal, IdSocketHandle;
 
type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    IdUDPServer1: TIdUDPServer;
    Button2: TButton;
    Button3: TButton;
    Label2: TLabel;
    Timer1: TTimer;
    procedure IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
      const AData: TIdBytes; ABinding: TIdSocketHandle);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.fmx}
 
procedure TForm2.Button2Click(Sender: TObject);
begin
  Form2.IdUDPServer1.Active:=true;
end;
 
procedure TForm2.Button3Click(Sender: TObject);
begin
Form2.IdUDPServer1.Active:=false;
end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
 
end;
 
procedure TForm2.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdBytes; ABinding: TIdSocketHandle);
  var
    ss:TStringStream; //сохранять буквы будем тут
  s,buff:String; //вспомогательные переменные
begin
      ss:=TStringStream.create(''); //создаем пустую строку
    ss.write(adata[0],length(adata)); //записываем в нее данные из потока байт
    s:=ss.DataString; //преобразовываем ее в текст
     ss:=TStringStream.create(''); //создаем пустую строку
    ss.write(adata[0],length(adata)); //записываем в нее данные из потока байт
    s:=ss.DataString; //преобразовываем ее в текст
end;
 
procedure TForm2.Timer1Timer(Sender: TObject);
begin
if form2.IdUDPServer1.Active=true then
begin
  label2.Text:='Server On - port 8488';
end
else
   label2.Text:='Server Off';
end;
 
end.

Сервер не принимает сообщения

Вы не выводите никуда в IdUDPServer1UDPRead, только в локальные переменные сохраняете.

И не думаю, что тут есть смысл использовать UDP вместо TCP.

Так я вроде и не вывожу не куда только сохраняю

Ну так и что удивительного тогда, что результата не видно?)

1 лайк

Большое спасибо потупил