ДЕЛЬФИ - Чат на Udp

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by strab, 18 Jun 2008.

Thread Status:
Not open for further replies.
  1. strab

    strab Elder - Старейшина

    Joined:
    5 Mar 2008
    Messages:
    59
    Likes Received:
    9
    Reputations:
    5
    Народ, написал Чат, на UDP/ip,кароче говоря проблема такая, запускаем прогу на двух компах, фаервол регестрирует исходящюю активность программы... а входящюю не регестрирует, соответсвенно, и сообщения с другого компа не доходят в чём ошибка подскажите, вот код:

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
    IdUDPClient, StdCtrls;

    type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Button2: TButton;
    IdUDPClient1: TIdUDPClient;
    IdUDPServer1: TIdUDPServer;
    memo1: TMemo;
    procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream
    );
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}


    procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream );
    var
    sts:Tstringstream;
    s:string;
    begin
    sts:=tstringstream.Create('');
    sts.Copyfrom(Adata,adata.size);
    memo1.lines.add('>>> '+sts.datastring);
    sts.free;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    idudpclient1.Send(edit1.text);
    memo1.Lines.Add(edit1.text);
    edit1.Text:='';
    end;

    end.

    ХЗ в чём трабла
     
  2. Dober'man

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    М.Фленов. Delphi глазами хакера.
    Как-то не красиво получилось!!!
    Скатывать надо правильно!!!
    Code:
    procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
     [B][U]ABinding: TIdSocketHandle[/U][/B] );
    var
    sts:Tstringstream;
    s:string;
    begin
    sts:=tstringstream.Create('');
    sts.Copyfrom(Adata,adata.size);
    memo1.lines.add([B][U]ABinding.PeerIP[/U][/B]+'>>> '+sts.datastring);
    // Перенаправление сообщения дальше
    [B][U]ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], length(s));[/U][/B]
    sts.free;
    end;
    (с) Фленов
    
    И всё работает!!!
     
    #2 Dober'man, 18 Jun 2008
    Last edited: 18 Jun 2008
  3. strab

    strab Elder - Старейшина

    Joined:
    5 Mar 2008
    Messages:
    59
    Likes Received:
    9
    Reputations:
    5
    Что не красивога та? :))))
    Вот с помеченными тобой строчками, эта прога не работает!!!! выдаёт ошибку

    undeclared idintifier ('tidsockethandle').....

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

    strab Elder - Старейшина

    Joined:
    5 Mar 2008
    Messages:
    59
    Likes Received:
    9
    Reputations:
    5
    Закрывайте тему в узесе надо было прописать пару библиотек, разобрался
     
Thread Status:
Not open for further replies.