首页 > 科幻小说 > 末日编程者 > 第七十四章 再改豌豆射手

第七十四章 再改豌豆射手(1/2)

目录
好书推荐: 哥斯拉在漫威 反派代言人 诸天世界大穿梭 武神无限 无限之肉身成圣 万能教师穿越记 春柳记 侯门闲妻 贵族战记 轮回永叹

表面上,韩海是进入了修炼,其实他是打开了数据模型库,观察起来这次的收获,他记得在杀死李易龙后,数据模型仓库传来响声,是有东西入库了。

韩海在仓库中找寻了半天,终于找到了新增的这个数据模型,这是一张白色的卡片,卡片中央写着systemon、core、server、main、utils,这些文件夹对应了协议模块、通用模块、核心模块、服务模块、主函数文件夹、工具类存放文件夹。

这一次韩海编写的是一个稍微大些的项目,其中使用字符数,他预计估计了下,起码要使用20-30万之多,也就是要耗费20-30万字符能量,可见一个聊天系统的服务器实现的难度,并且写完服务器韩海还需实现客户端的编写,这里也需要耗费大量的字符能量。

不过在守城战后,韩海字符能量达到了200万,目前来说还是够他挥霍的,所以他目前不必为字符能量担忧。

然后韩海开始了漫长的编写,不过好在的是,聊天系统他之前在公司的时候写过一套,现在也能回想起来,复写一遍就好了。

韩海所写的及时聊天系统,主要分三层:协议层、功能层和业务层。

协议层主要是定义服务器和客户端传输数据包时候的约定,这一层还分2层,第一块是通讯协议层,第二块是业务协议层。

通讯协议层:主要是通用化的加密解密方案,握手、重连、断开等约定。

业务协议层:主要是处理某个用户要与某人通讯,然后给某人发出消息,断开等等约定。

协议说白了也算一种数据结构,只不过他们传播的方式是流状的,而代码去解析也需要逐步去解析,就好比写信的时候,我要告诉你一件事情,但是我雷打不动,信的第一行写的肯定是你的名字,后面才跟着是我写给你的内容。

当然没有写信那么简单,我们可能在主消息体前面加了很多标示,就像之前所说的,第一层用两个字节使用im标识,这个是属于这个通讯系统的占位符,第二层用四个字节传入了一个时间,第三层用1个字节传了一个短整形7,标识这个文本的业务是传输消息,第四层用了四个字节放了一个长整形标识之后消息体的字节长度,第五层才能使用刚刚读到的消息体长度,才可以拿到定长的消息体。

在这之后,还需要解码消息体,得到真正的消息,不过这个东西一般写在客户端,服务器只负责传输就好了。

当然以上的描述只是个栗子,而真正应用中比这些数据更多、更复杂,比如一个用户传递消息给另一个用户,如果要交给另一个用户,不仅服务器要识别这个消息体发送人的身份,还要识别传递给那个人的是否存在,能不能发送等等。

功能层主要就是进行数据的一些处理,比如以下代码:

intencodelong(longlongintsrc,unsignedchar**ret,int&len)

{

unsignedchar*buf=(unsignedchar*)malloc(9);

memset(buf,0,9);

unsignedchar*p=buf;

*p++|=lpush_fmt_long;

*p++|=(src>>56)&0xff;

*p++|=(src>>48)&0xff;

*p++|=(src>>40)&0xff;

*p++|=(src>>32)&0xff;

*p++|=(src>>24)&0xff;

*p++|=(src>>16)&0xff;

*p++|=(src>>8)&0xff;

本章未完,点击下一页继续阅读。

目录
新书推荐: 梦蝶TFboys 你是信仰去照耀 EXO的守护天使 守护甜心之血染蔷薇 穿越琅琊榜之我是靖王妃 甜妹在哨向世界苟成万人迷 被S级哨兵觊觎的F级向导 神壕快穿:闪开,小祖宗驾到 星元游戏架构师 觉醒失败?我在星际写狗血文封神
返回顶部