zoukankan      html  css  js  c++  java
  • DIOCP转发型中间网关

    处理部分关键代码:

    中转类网关处理部分:
    procedure DiocpExecute(pvCMDObject: TSimpleMsgPack; pvContext:TDiocpStreamClientContext);
    var
    lvCMDIndex:Integer;
    lvSession:TCHATSession;
    ToUserID:string;
    DataDBID:string;
    begin
    if pvCMDObject.O['ResultCMD']<> nil then
    begin
    ToUserID:=pvCMDObject.ForcePathObject('FrmUser').asstring;
    pvCMDObject.ForcePathObject('CMD').AsInteger:=pvCMDObject.ForcePathObject('ResultCMD').asinteger;

    pvCMDObject.DeleteObject('ResultCMD');

    SendCMDObject(pvCMDObject,TCHATSession(ChatSessions.FindSession(ToUserID)).FContext);

    pvCMDObject.clear;
    exit;
    end;

    if pvCMDObject.O['cmd']<> nil then
    begin


    lvCMDIndex := pvCMDObject.ForcePathObject('cmd').AsInteger;

    case lvCMDIndex of
    0: ExecuteHeart (pvCMDObject, pvContext); // 心跳
    1: ExecuteLogin (pvCMDObject, pvContext); // 登陆
    10: ExecuteSql (pvCMDObject, pvContext);
    else //转发数据给处理端
    begin
    lvSession := TCHATSession(TDiocpStreamClientContext(pvContext).Data);
    if lvSession = nil then
    begin
    raise exception.CreateFmt(pvContext.RemoteAddr+'['+inttostr(pvcontext.RemotePort) +']非法连接关闭:[%d]', [lvCMDIndex]);
    end
    else
    begin

    pvCMDObject.ForcePathObject('FrmUser').asstring:=lvSession.useriD;

    if DataDBSrv.count>0 then

    begin

    Randomize;

    DataDBID:=DataDBSrv.strings[Random(DataDBSrv.count)];
    // sflogger.logMessage(datadbid);
    end

    else

    begin

    sflogger.logMessage('处理端未开启');
    end;


    SendCMDObject(pvCMDObject,TCHATSession(ChatSessions.FindSession(DataDBID)).FContext);

    end;
    // sfLogger.logMessage('转发成功');
    exception.CreateFmt(pvContext.RemoteAddr+'['+inttostr(pvcontext.RemotePort) +']执行未知命令:[%d]', [lvCMDIndex]);
    end;
    end;
    end;

    end;

  • 相关阅读:
    简述序列化与反序列化
    更新Kali源&&Docker vulhub 安装
    超级弱口令爆破工具&&hydra
    通达OA任意用户登录
    读书笔记——白帽子讲Web安全
    骑士CMS搭建与利用
    记一次DVWA的SQL注入测试
    网络基础
    C#类对象的事件定义
    [开源]FreeSCADA的通道数据与控件属性关联以及自动刷新机制研究
  • 原文地址:https://www.cnblogs.com/diocp/p/9347543.html
Copyright © 2011-2022 走看看