6.2、业务逻辑之打通业务处理脉搏实战

2019-04-13  本文已影响0人  奥斯特洛司机

1、多线程互斥量+条件变量
线锁住互斥量,取队列,到条件变量等待的三个步骤。调用条件变量的时候释放互斥量,使得其他线程可以从队列中取数据。线程进入等待条件的线程列表中。当pthred_cond_wait返回,再次去竞争锁。
2、crc32算法介绍
CCRC32类:队首发的数据包进行简单的数据校验,确保数据包没有被修改过。
客户端计算包体的crc32值,放在包头crc32成员中。
服务器收到数据包后,也计算包体的crc32值。
两者对比,相同就是没被修改的。
服务器发出的数据包也一样被客户端处理。
这就要确保两边的计算算法一致。
3、业务逻辑代码放在CSocket类的子类中

4、设计模式:
把一个个小功能封装成一个个类。往设计模式上套。进行所谓的面向对象程序设计。
不要乱用设计模式。
5、消息的具体设计
定义一个函数指针,定义一个该指针的指针数组,
每一个消息有一个对应的消息处理函数,对应指针数组里的一项,通过下表访问对应的函数。
服务器逻辑开发工作,主要集中在三个文件中。
comm.h slogic.h clogic.cxx
6、threadrecvprocfunc()函数讲解。

上一篇下一篇

猜你喜欢

热点阅读