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.
解决方案 »
- 自动登录网站问题
- dbgrid中某列为bit类型输入保存问题
- 请教高手,确定memo当前光标位置与选定字符的问题
- 请问能不能在stringgrid中点击一个单元格就可以输入文本,而不是通过代码写,什么控件有这样的功能,还有怎样控制一列中的单元格只能输入
- 求KvLabel控件
- 问一个简单的问题!
- 如何在用户登录网站时,获取能表明是他的机器的唯一信息?up有分
- 谁有用delphi做的拨号程序或控件,请告知。
- 如何把通过SQL查询统计后的结果(显示在DBGIRD中)用QREPORT实现打印预览及打印?不必太详细,讲一下用到的控件和思路即可。
- 三層中的Pooling問題
- delphi TRODataSnapModule问题
- 启动一个工程时,如何命名工程名字
先谢谢,明天回去再测试一下