indy 封包转发

type
  TMySuperMappedPortContext
= Class(TIdMappedPortContext)
    public
     
procedure DoEncode;
     
procedure DoDecode;
  End;


implementation

{自定义加密函数}
function EncodeData(Src: String): String;
begin
  Result :
= Src;
end;

{自定义解密函数}
function DecodeData(Src: String): String;
begin
  Result :
= Src;
end;


{自定义加密接口}
procedure TMySuperMappedPortContext.DoEncode;
begin
  FNetData :
= EncodeData(FNetData);
end;

{自定义解密接口}
procedure TMySuperMappedPortContext.DoDecode;
begin
  FNetData :
= DecodeData(FNetData);
end;

{OnBeforeListenerRun事件}
{替换相应的映射消息处理类型}
procedure TForm1.IdMappedPortTCP1BeforeListenerRun(AThread: TIdThread);
begin
  IdMappedPortTCP1.ContextClass :
= TMySuperMappedPortContext;
end;

{OnExecute事件}
{接收到须转发的数据,调用DoEncode进行"加密"}
procedure TForm1.IdMappedPortTCP1Execute(AContext: TIdContext);
begin
 
if AContext is TMySuperMappedPortContext then begin
    TMySuperMappedPortContext(AContext).DoEncode;
 
end;
end;

{OnOutboundData事件}
{接收到须转发的数据,调用DoDecode进行"解密"}
procedure TForm1.IdMappedPortTCP1OutboundData(AContext: TIdContext);
begin
 
if AContext is TMySuperMappedPortContext then begin
    TMySuperMappedPortContext(AContext).DoDecode;
 
end;
end;

转载于:https://www.cnblogs.com/jxgxy/archive/2009/03/02/1401506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值