zoukankan      html  css  js  c++  java
  • DIOCP之编写第一个应用程序(一)

    Server

    设计功能如下:

        1、支持客户端登录

        2、连接数据库进行操作

        3、推送信息

        4、限制文件上传大小

    第一步:创建一个VCL-Forms Application(创建一个标准VCL程序)

    第二步:引用必要的单元文件:diocp_coder_tcpServer, diocp_tcp_server,  SimpleMsgPack,uMyClientContext(uMyClientContext为扩展clientcontext,自己编写),uDIOCPStreamCoder(引用编码器与解码器单元)

    第三步:主类下增加几个对象

    private
    { Private declarations }
    FTcpServer: TDiocpCoderTcpServer;//服务器对象
    public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    end;

    第四步:编写

    constructor Create(AOwner: TComponent); override;//构造函数
    destructor Destroy; override;//构析函数

    constructor TfrmMain.Create(AOwner: TComponent);
    begin
    inherited Create(AOwner);
    FTcpServer := TDiocpCoderTcpServer.Create(Self);
    FTcpServer.createDataMonitor;//创建监视器

    FTcpServer.WorkerCount := 3;//设置工作线程

    FTcpServer.registerCoderClass(TIOCPStreamDecoder, TIOCPStreamEncoder);//注册编码器

    FTcpServer.registerContextClass(TuMyClientContext);//注册拓展clientcontext

    end;

    destructor TfrmMain.Destroy;
    begin
    inherited Destroy;
    end;

    第五步:编写MyClientContext单元文件

    主要用来编码解决建立连接、处理连接、处理接受数据等问题,如有需要可在这里处理数据库操作

    private
    protected
    procedure OnDisconnected; override;//连接断开事件触发

    procedure OnConnected; override;//连接建立成功事件触发
    public
    /// <summary>
    /// 数据处理
    /// </summary>
    /// <param name="pvObject"> (TObject) </param>
    procedure DoContextAction(const pvObject: TObject); override;
    end;

  • 相关阅读:
    第二周总结
    2019春总结作业
    第二次编程总结
    第四周作业
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第六周作业
  • 原文地址:https://www.cnblogs.com/diocp/p/5857910.html
Copyright © 2011-2022 走看看