| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- { $HDR$}
- {**********************************************************************}
- { Unit archived using Team Coherence }
- { Team Coherence is Copyright 2002 by Quality Software Components }
- { }
- { For further information / comments, visit our WEB site at }
- { http://www.TeamCoherence.com }
- {**********************************************************************}
- {}
- { $Log: 11281: UDPBox.pas
- {
- { Rev 1.0 11/12/2002 09:21:16 PM JPMugaas
- { Initial check in. Import from FTP VC.
- }
- unit UDPBox;
- interface
- uses
- IndyBox,
- Classes,
- IdSocketHandle;
- type
- TUDPBox = class(TIndyBox)
- protected
- procedure ServerRead(ASender: TObject; AData: TStream; ABinding: TIdSocketHandle);
- public
- procedure Test; override;
- end;
- implementation
- uses
- IdUDPServer, IdUDPClient,
- SysUtils;
- { TUDPBox }
- procedure TUDPBox.ServerRead(ASender: TObject; AData: TStream; ABinding: TIdSocketHandle);
- var
- i: integer;
- begin
- AData.ReadBuffer(i, SizeOf(i));
- Assert(i = 1);
- i := i + 1;
- TIdUDPServer(ASender).SendBuffer(ABinding.PeerIP, ABinding.PeerPort, i, SizeOf(i));
- end;
- procedure TUDPBox.Test;
- var
- i: integer;
- LServer: TIdUDPServer;
- begin
- LServer := TIdUDPServer.Create(nil); try
- with LServer do begin
- DefaultPort := 6000;
- OnUDPRead := ServerRead;
- ThreadedEvent := True;
- Active := True;
- end;
- with TIdUDPClient.Create(nil) do try
- Host := '127.0.0.1';
- Port := 6000;
- i := 1;
- SendBuffer(i, SizeOf(i));
- ReceiveBuffer(i, SizeOf(i));
- Check(i = 2, 'UDP Data failed.');
- finally Free; end;
- finally FreeAndNil(LServer); end;
- end;
- initialization
- TIndyBox.RegisterBox(TUDPBox, 'UDP', 'Misc');
- end.
|