• 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;

  • 相关阅读:
    animate()的使用
    jQuery UI中datepicker()的使用
    newsletter 在不同邮箱中发送的问题
    用户评价 打星等级 效果 jQuery
    SpringBoot整合WebSocket
    SpringBoot之自定义拦截器
    SpringBoot整合MyBatis
    EF实体框架简单原理及基本增删改查用法(上)
    数据库内容导出到Excel
    Asp.Net页面生命周期
  • 原文地址:https://www.cnblogs.com/diocp/p/5857910.html
Copyright © 2020-2023  润新知