- @leaber
对象的生存期判断我是在引用对象的时候记录一个cookie,下次访问的时候如果对象被释放或者重新分配,那么cookie就会不同,于是就可以判断出原来那个对象不存在了。 - @sniperHW
你这么做也是可以的,但是分配Packet的话会牵涉到动态内存分配。我文章中提到的环形缓冲区只管分配不需要释放,效率比动态分配的要高,而传递给Send的buf数据是在栈上构造的,也不需要释放。如果一定要避免内存拷贝的话可以把AllocSendBuffer函数暴露出来供上层使用,因为感觉这样接口比较罗嗦就没这么干。 - @sniperHW
因为Send是异步函数,收到完成通知后上层调用者没机会去释放内存,只能交给Send函数来释放,让底层去释放上层传递过来的内存这个味道相当不好,相当于你在Send函数里写:
Send(char* buf, ine len){
send(socket, buf, len);
free(buf);
}
所以在底层另外分配内存以保存发送数据。多一次内存拷贝降低了上层与底层的耦合性,这是值得的。 - @sniperHW
因为关闭了socket的发送缓冲区,send操作无法立刻完成,必须把数据保存在用户自己的缓冲区内等待系统发送。关闭socket发送缓冲区的原因文章里已经说明了。 - 上一篇主要谈了一些基本理念,本篇将谈谈我个人总结的一些IOCP编程技巧。
- @不能飚车
下一篇主要会介绍一些我总结出来的IOCP的编程技巧,跟一般网络上可以找到的文章大不相同,请大家关注。 - 前段时间接手了一个网络游戏前端连接服务器的开发工作,由于服务器需要在windows平台上部署,并且需要处理大量的客户端连接,因此采用IOCP来做为服务器端的编程模型就成了不二选择。虽然我对服务器开发...
- 最近需要在windows上编译一个开源软件,需要安装MinGW-gcc-3.3.1这个版本,在MinGW的官网和sf上找了半天都找不到旧版本的下载,新版本又不能编译,真是愁死人啊,google了老半天...
- 近日拜读了陈硕大牛的文章C++ 工程实践(5):避免使用虚函数作为库的接口,文章的观点认为应该避免使用C++的class纯虚函数来定义API接口,并以COM作为反向教材进行批判,对此本人有些不同意见,...
- 功,赢在游戏性以及成功的市场营销上。技术就是技术,不懂技术如何正确评价技术?用“审美来直觉体验小鸟的深刻技术内涵”,这是一件多么扯淡的事情啊。...
- 小鸟显然不是赢在技术上,比他模拟的复杂模拟的真实的物理引擎多的是,难点在于利用物理做出游戏性来。
- 用多线程同时写多个文件只会更慢,磁头要来回在多个文件之间跑来跑去,想想就觉得慢啊。
- 最近要用到Intel的media SDK播放H264视频,发现intel的SDK转码出来的帧缓冲是NV12像素格式的,需要自己转换成RGB32格式。虽然这种代码网上找找一大堆,但还是自己动动手吧。go...
- @doggo
当然没那么简单了
比如:test "this is test"
你这方法就不行了。 - 以前我都是使用TrueCrypt来虚拟磁盘,用来加密存放我的工作文件,现在有了VHD再配合Win7自带的BitLocker就可以让系统来实现这个功能了,相比TrueCrypt来说有更强大的功能,不过在...
- 把一个把字符串分解成命令行参数是很常见的操作,一直很纳闷为什么.net没有提供相关的功能,自己写一个又觉得麻烦。幸好windows提供了一个API来干这个事情。不过这个API调用起来颇为麻烦,goog...
- 10月中旬去北京参加了ECUG2010大会,并在会上做了并行计算方面的一场演讲,这里把演讲的PPT,测试代码还有演讲视频的链接一并放上。基于多核系统的并行算法和实例分析测试代码演讲的视频
- 最近的互联网很热闹,起因是360和QQ之间爆发了一场据称是史上最惨烈的战争,周鸿祎虽然是个老流氓,但这次他牢牢的占领了道德制高点,让我预感腾讯将在这次大战中惨败。谁是谁非暂且不谈,这次的3Q大战让我们...
- Parallel.For可以算是并行计算的基石了,有了他可以解决90%以上的并行计算问题。当然了,他的实现实在是简单的不值一提,先发一个我写的C#实现,下回我们就以它为基础来讲解如何实现并行计算。对于...










