看Eva代码遇到看不懂的地方该问谁?
想通过看代码来提高自己的软件水平。但我又不是搞软件开发的,只是有点网络的基本知识而已。所以我看代码就从包的产生,发送接受,通信协议什么的开始看起。这些东西比较具体,看起来也有兴趣。我看到发送一个包基本都是通过connecter->append(),
而append()里面会调用sendOut()。
sendOut()里会调用OutPacket::fill()。
OutPacket::fill()里大致是
putHead()
putBody()
encryptBody()这么几步。产生包头,对包体加密,最后加上包尾,一个完整的包到这里就出来了。问题是putBody()里面只是写了一个0,产生的是个空串。
对doRequestLoginToken这种操作来说没有包体,这是可以的。但是比如发消息的包,肯定得有包体。这些包体是在哪儿插到包里面的?我看了看发消息还是用的append(),最后还是跑到OutPacket::fill()里面来了,得到的仍然是个空串。
这是怎么回事呢?看到这里就卡住了。 :?: yunfan 你看一下OutPacket这个声明,好像返回参数是int,记不清了:
virtual int putBody(); 明白了,原来这是个虚拟函数。谢谢yunfan的解答。 顺便问问eva有没有在防火墙上用UDP方式打洞的功能?
如果有的话,我读代码的时候可以特别留意。
页:
[1]