PDA

Просмотр полной версии : ДЕЛЬФИ - Чат на Udp


strab
18.06.2008, 13:09
Народ, написал Чат, на 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.

ХЗ в чём трабла

Dober'man
18.06.2008, 16:36
написал Чат
М.Фленов. Delphi глазами хакера.
Как-то не красиво получилось!!!
ХЗ в чём трабла
Скатывать надо правильно!!!

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle );
var
sts:Tstringstream;
s:string;
begin
sts:=tstringstream.Create('');
sts.Copyfrom(Adata,adata.size);
memo1.lines.add(ABinding.PeerIP+'>>> '+sts.datastring);
// Перенаправление сообщения дальше
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], length(s));
sts.free;
end;
(с) Фленов

И всё работает!!!

strab
18.06.2008, 17:01
Что не красивога та? :))))
Вот с помеченными тобой строчками, эта прога не работает!!!! выдаёт ошибку

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

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

strab
18.06.2008, 17:57
Закрывайте тему в узесе надо было прописать пару библиотек, разобрался