- 博客(4)
- 资源 (20)
- 收藏
- 关注
原创 客户端软件的结构思考(一)
关于这个标题的内容我思考了很多年,也求索了很多年,每次遇到一份新的质量看起来不错客户端软件的源码时,我总是不自己觉的去学习它和研究它,以期能解决我的困惑,希望能达到我心中“完美”方案的样子。但是直到今天,我仍然没找到所谓的“完美”的答案,但是在这个成长过程中,因为借鉴、融合和吸纳了许多其他的pc软件的设计思想和技巧,我在做pc软件整体结构设计时越来越得心应手。下面是我成长的心路历程,故事很长,太多
2017-10-30 17:13:22 3870
原创 网络编程难点解析(二)—— TCP之心跳包实现思路
心跳包机制 心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。也有的心跳包中会携带一些需要定期更新的信息。 在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置
2017-10-29 21:28:09 5044
原创 网络编程难点解析(一) —— 网络异常检查
一、本文目的在涉及网络编程的实际项目应用中,由于网络不可能一直处于理想状态,TCP长连接也可能随时正常或异常地断开,如果不予处理,那么就可能因此而给程序带来很多潜在的问题。 编写该文档的目的就在于针对网络程序中可能遇到的各种问题,拿出来与大家探讨一下具体问题的解决方案,同时本人将前期调研的一些解决方案列出来,抛砖引玉,希望可以集思广益,寻求到更加合理的解决方案。二、网络断开时机1、正常网络断开(1
2017-10-29 21:13:53 2720
原创 关于std::move和std::forward
这篇文章介绍的真不错:http://www.cnblogs.com/catch/p/3507883.html总结起来:1. std::move是将左值变成右值减少不必要的拷贝;2. std::forward保持一个值的左值和右值特性不变,以变传给既能接受左值又能接受右值的函数,例:templateTYPE* acquire_obj(ARG&& arg){ return new TYPE(
2017-10-23 13:55:54 1147
文章《用Android Studio进行NDK编程》配套资源
2018-04-17
即时通讯flamingo服务器端代码
2017-04-06
即时通讯flamingo客户端
2017-04-06
myreactor项目C++11版本源代码
2016-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人