type TForm1 = class(TForm) IdUDPServer1: TIdUDPServer; Memo1: TMemo; Button1: TButton; procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm} var s : integer;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var t : string; begin adata.Position := 0; setlength (t,adata.size); adata.Read(t[1],adata.Size); memo1.Lines.Add(t); end;
procedure TForm1.Button1Click(Sender: TObject); var addr : sockaddr_in; t : string; begin t := 'abc'; addr.sin_family := AF_INET; addr.sin_port := htons(1000); addr.sin_addr.S_addr := inet_addr('127.0.0.1'); sendto (s,t[1],length(t),0,addr,sizeof(addr)); end;
procedure TForm1.FormCreate(Sender: TObject); var wsData : WSAData; begin WSAStartup ($0101,wsData); s := socket (AF_INET,SOCK_DGRAM,IPPROTO_UDP); end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin WSACleanup (); end;
你到网上搜搜看。
//在USE中手工加入IdSocketHandle
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,
IdSocketHandle, WinSock;
type
TForm1 = class(TForm)
IdUDPServer1: TIdUDPServer;
Memo1: TMemo;
Button1: TButton;
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
s : integer;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
t : string;
begin
adata.Position := 0;
setlength (t,adata.size);
adata.Read(t[1],adata.Size);
memo1.Lines.Add(t);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
addr : sockaddr_in;
t : string;
begin
t := 'abc';
addr.sin_family := AF_INET;
addr.sin_port := htons(1000);
addr.sin_addr.S_addr := inet_addr('127.0.0.1');
sendto (s,t[1],length(t),0,addr,sizeof(addr));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
wsData : WSAData;
begin
WSAStartup ($0101,wsData);
s := socket (AF_INET,SOCK_DGRAM,IPPROTO_UDP);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WSACleanup ();
end;
end.