server.dprprogram server;{$APPTYPE CONSOLE}uses
SysUtils, IdSocketHandle, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdGlobal;type
TServer = class
private
FUdpServer: TIdUDPServer;
procedure OnRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle);
public
constructor Create(const port: Word);
destructor Destroy; override;
end;
{ TServer }constructor TServer.Create(const port: Word);
begin
FUdpServer := TIdUDPServer.Create;
with FUdpServer do
begin
ThreadedEvent := True;
DefaultPort := port;
OnUDPRead := OnRead;
Active := True;
end;
end;destructor TServer.Destroy;
begin
FUdpServer.Free;
end;procedure TServer.OnRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle);
var
content: string;
begin
SetLength(content, Length(AData));
Move(AData[0], content[1], Length(AData));
Writeln(Format('[%s] %s', [ABinding.PeerIP, content]));
end;var
ser: TServer;begin
ser := TServer.Create(9999);
try
Readln;
finally
ser.Free;
end;
end.client.dpr
program client;{$APPTYPE CONSOLE}uses
IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;var
cli: TIdUDPClient;
begin
cli := TIdUDPClient.Create;
try
//默认测试为127.0.0.1:9999,自己修改外网IP及端口,记得端口(UDP)要开放
cli.Send('127.0.0.1', 9999, 'hello indy!');
finally
cli.Free;
end;
end.
SysUtils, IdSocketHandle, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdGlobal;type
TServer = class
private
FUdpServer: TIdUDPServer;
procedure OnRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle);
public
constructor Create(const port: Word);
destructor Destroy; override;
end;
{ TServer }constructor TServer.Create(const port: Word);
begin
FUdpServer := TIdUDPServer.Create;
with FUdpServer do
begin
ThreadedEvent := True;
DefaultPort := port;
OnUDPRead := OnRead;
Active := True;
end;
end;destructor TServer.Destroy;
begin
FUdpServer.Free;
end;procedure TServer.OnRead(AThread: TIdUDPListenerThread; AData: TIdBytes; ABinding: TIdSocketHandle);
var
content: string;
begin
SetLength(content, Length(AData));
Move(AData[0], content[1], Length(AData));
Writeln(Format('[%s] %s', [ABinding.PeerIP, content]));
end;var
ser: TServer;begin
ser := TServer.Create(9999);
try
Readln;
finally
ser.Free;
end;
end.client.dpr
program client;{$APPTYPE CONSOLE}uses
IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;var
cli: TIdUDPClient;
begin
cli := TIdUDPClient.Create;
try
//默认测试为127.0.0.1:9999,自己修改外网IP及端口,记得端口(UDP)要开放
cli.Send('127.0.0.1', 9999, 'hello indy!');
finally
cli.Free;
end;
end.
解决方案 »
- 问个基础问题,在DELPHI 2010中CHAR和PCHAR数据类型有什么区别
- 请教个delphi应用中的简单问题.......
- 包的问题。向高手请教
- adoquery数据集在DBGRID中编辑出现的错误?马上给分
- 谁有ExpressQuantumGrid 的使用帮助?万分感
- delph自动连接数据库的问题?
- 谁知道DELPHI5开发人员(英文版 )指南的下裁地址啊?很急!!!或有译文资料
- EXE、DLL相互之间如何传递消息?
- 在SQL Server中如何改变一个table中一列的字段属性?
- delphi中利用sql语句修改的wenti
- delphi TRODataSnapModule问题
- 启动一个工程时,如何命名工程名字
先谢谢,明天回去再测试一下