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;
DIOCP之编写第一个应用程序(一)的更多相关文章
- DIOCP之编写第一个应用程序(三)
Client 设计功能如下: 1.建立与服务器连接 2.请求连接时,加密密码,采用Base64编码 3.定时发送心跳告诉服务器在线(长连接,用于接收推送信息) 4.进行相关的数据处理与交互 第一步:创 ...
- DIOCP之编写第一个应用程序(二)
构建client界面: 构建界面要比写代码更难爱,不是专业UI设计太丑,先有个界面,好写代码,客户端代码与界面设计思想:界面与数据之间分离处理,不能要接收数据的地方写代码,不然以后修改程序会死人的.
- Xamarin iOS编写第一个应用程序创建工程
Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了.本节将主要讲解在Xamarin Studio中如何进行工程的 ...
- 微信小程序-----安装,编写第一个小程序和运行到手机端
第一步: 微信公众平台注册账号,并选择小程序,网址:mp.weixin.qq.com 填写相关信息,如:主体类型(个人或者企业) AppID 在开发中都是用的到的,服务器域名在网络请求也是用的到的. ...
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...
- 编写第一个微信小程序界面
编写第一个微信小程序界面 不忘初心,方得始终:初心易得,始终难守. 传统的 web 结构 小程序文件目录结构 小程序页面层级结构 编写第一个小程序 1. 创建小程序目录结构 2. 编写代码 welco ...
- C#基础知识-编写第一个程序(二)
通过上一篇数据类型已经介绍了C#中最基本的15种预定义数据类型,了解每一种类型代表的数据以及每种类型的取值范围,这是很重要也是最基本.下面我们通过实例来了解每个类型如何去使用.编写C#程序时我们需要用 ...
- ASP.NET MVC 5 03 - 安装MVC5并创建第一个应用程序
不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小 ...
- C#编写简单的聊天程序
这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...
随机推荐
- ajax提交请求返回对象异常问题
很早之前的一个ajax请求今天突然不能正常显示数据了. 控制台看到报错 POST http://xxx:8081/spider-war/spiderControl.do?method=getTaskL ...
- Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug
本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在 ...
- 华硕Z97-A主板声卡设置
$ vim /usr/share/alsa/alsa.conf ## defaults# # show all name hints also for definitions without hint ...
- [JavaScript]顺序的异步执行
我们知道,在适用js的时候,程序是单线程执行的,而且如果遇到阻塞就会将浏览器卡死. 能否异步的执行,让程序不再卡呢? 可以,用setTimeout. 但是,问题又来了,如果我有这样的要求: 执行一个函 ...
- 项目中用到RouteTable,发布到IIS7中无法访问
项目中用到RouteTable,发布到IIS7中,访问之后没有任何反应,google半天终于找到了解决方法,就是要把iis的“HTTP重定向”功能打开
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
起因: 在oracle测试过程中,不小心执行了delete user$ 命令,导致oracle当前实例所有的用户信息丢失,包括sys用户. 第一次使用DUL工具数据恢复:失败 下载ParnassusD ...
- C#利用WIN32实现按键注册
using System.Runtime.InteropServices; using System.Collections.Generic; using System; using System.W ...
- 服务器RAS性能
服务器的安全性能要求非常高,主要体现在RAS性能上.RAS性能指的是机器的可靠性(Reliability).可用性(Availability)和可服务性(Serviceability).RAS能力主要 ...
- 一些不错的学习资料(node)
Node.js的api中文文档 http://expressjs.jser.us/ 关于Node.js的一系列不错的学习文章 http://blog.fens.me/ express框架的使用 htt ...
- 古诗词api,诗词接口,诗词api,中国诗词
服务商:api.getlove.cn 分类:诗词 更新时间:2016-03 如果接口不满足您的要求,您可以联系qq:2265658022购买完整的数据库 免费apikey:56eab527a0facb ...