QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2576|回复: 4

看Eva代码遇到看不懂的地方该问谁?

[复制链接]
发表于 2006-8-23 16:58:35 | 显示全部楼层 |阅读模式
想通过看代码来提高自己的软件水平。但我又不是搞软件开发的,只是有点网络的基本知识而已。所以我看代码就从包的产生,发送接受,通信协议什么的开始看起。这些东西比较具体,看起来也有兴趣。

我看到发送一个包基本都是通过connecter->append(),
而append()里面会调用sendOut()。
sendOut()里会调用OutPacket::fill()。
OutPacket::fill()里大致是
putHead()       
putBody()
encryptBody()这么几步。产生包头,对包体加密,最后加上包尾,一个完整的包到这里就出来了。问题是putBody()里面只是写了一个0,产生的是个空串。
对doRequestLoginToken这种操作来说没有包体,这是可以的。但是比如发消息的包,肯定得有包体。这些包体是在哪儿插到包里面的?我看了看发消息还是用的append(),最后还是跑到OutPacket::fill()里面来了,得到的仍然是个空串。
这是怎么回事呢?看到这里就卡住了。
发表于 2006-8-23 19:47:06 | 显示全部楼层
yunfan
回复

使用道具 举报

发表于 2006-8-23 19:47:57 | 显示全部楼层
你看一下OutPacket这个声明,好像返回参数是int,记不清了:
virtual int putBody();
回复

使用道具 举报

 楼主| 发表于 2006-8-24 12:26:58 | 显示全部楼层
明白了,原来这是个虚拟函数。谢谢yunfan的解答。
回复

使用道具 举报

 楼主| 发表于 2006-8-25 08:40:30 | 显示全部楼层
顺便问问eva有没有在防火墙上用UDP方式打洞的功能?
如果有的话,我读代码的时候可以特别留意。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 00:25 , Processed in 0.040972 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表