C++之网络陷阱
来源:互联网 发布:个人数字图书馆软件2.1 编辑:程序博客网 时间:2024/06/02 06:00
●多线程服务器模型
one loop per thread.
多线程发挥多核CPU的效率
●muduo网络库 86元
●术语
Observer
Reactor
Sigleton
override覆写
dereference提领指针
●同步原语
互斥锁、读写锁、条件变量、信号量
●网络编程的坑爹陷阱
1.程序在本机测试正常,放到网络运行上就经常出现数据收不全的情况?
丢包
2.TCP 协议真的有所谓的“粘包问题”吗?该如何设计打包拆包的协议?又该如何编码实现才不会掉到陷阱里?
粘包
3.带外数据(OOB)、信号驱动IO这些高级特性到底有没有用?
IO性能
4.网络协议格式该怎么设计?发送 C struct 会有对齐方面的问题吗?对方不用 C/C++ 怎么通信? 将来服务端软件升级,需要在协议中增加一个字段,现有的客户端就必须强制升级?
网络协议设计原则
5.要处理几千上万的并发连接,似乎书上讲的传统 fork() 模型应付不过来,该用哪种并发模型呢?
试试 select、poll、epoll 这种 IO 复用模型吧,又感觉非阻塞IO陷阱重重,怎么程序的 CPU 使用率一直是100%?
实现高并发模型
6.要不改用现成的 libevent 网络库吧,怎么查询一下数据库就把其他连接上的请求给耽误了?
libevent库使用
7.再用个线程池吧。万一发回响应的时候对方已经断开连接了怎么办?会不会串话?
线程池引入
8.C++开发导致内存碎片的问题?
9.传闻服务端开发主要通过日志来查错,那么日志里该写些什么?日志是写给谁看的?怎样写日志才不会影响性能?
日志编写原则
10.分布式系统跟单机多进程到底有什么本质区别?心跳协议为什么是必须的,该如何实现?
分布式与多进程区别
11.C++ 的大型工程该如何管理?库的接口如何设计才能保证升级的时候不破坏二进制兼容性?
接口设计
one loop per thread.
多线程发挥多核CPU的效率
●muduo网络库 86元
●术语
Observer
Reactor
Sigleton
override覆写
dereference提领指针
●同步原语
互斥锁、读写锁、条件变量、信号量
●网络编程的坑爹陷阱
1.程序在本机测试正常,放到网络运行上就经常出现数据收不全的情况?
丢包
2.TCP 协议真的有所谓的“粘包问题”吗?该如何设计打包拆包的协议?又该如何编码实现才不会掉到陷阱里?
粘包
3.带外数据(OOB)、信号驱动IO这些高级特性到底有没有用?
IO性能
4.网络协议格式该怎么设计?发送 C struct 会有对齐方面的问题吗?对方不用 C/C++ 怎么通信? 将来服务端软件升级,需要在协议中增加一个字段,现有的客户端就必须强制升级?
网络协议设计原则
5.要处理几千上万的并发连接,似乎书上讲的传统 fork() 模型应付不过来,该用哪种并发模型呢?
试试 select、poll、epoll 这种 IO 复用模型吧,又感觉非阻塞IO陷阱重重,怎么程序的 CPU 使用率一直是100%?
实现高并发模型
6.要不改用现成的 libevent 网络库吧,怎么查询一下数据库就把其他连接上的请求给耽误了?
libevent库使用
7.再用个线程池吧。万一发回响应的时候对方已经断开连接了怎么办?会不会串话?
线程池引入
8.C++开发导致内存碎片的问题?
9.传闻服务端开发主要通过日志来查错,那么日志里该写些什么?日志是写给谁看的?怎样写日志才不会影响性能?
日志编写原则
10.分布式系统跟单机多进程到底有什么本质区别?心跳协议为什么是必须的,该如何实现?
分布式与多进程区别
11.C++ 的大型工程该如何管理?库的接口如何设计才能保证升级的时候不破坏二进制兼容性?
接口设计
0 0
- C++之网络陷阱
- C陷阱与缺陷之词法陷阱
- C陷阱与缺陷之语法陷阱
- C陷阱与缺陷之(一)
- 读书笔记之《C陷阱与缺陷》
- C指针陷阱之传值指针
- C陷阱篇之enum默认长度
- C陷阱篇之define的缺陷
- C陷阱篇之移位运算
- C陷阱篇之运算符优先级
- C陷阱篇之常见手误
- 【C语言探索之二】内存陷阱
- C语言陷阱之差一错误
- 4.4.C语言的陷阱之typedef
- C语言陷阱之优先级学习小结
- C“陷阱”
- C陷阱与缺陷代码分析之第1章词法陷阱
- C陷阱与缺陷代码分析之第2章语法陷阱
- C#控制台基础 用指定字符连接一维string数组
- 浏览器访问网页的详细内部过程
- Markdown语法链接通过新窗口打开解决办法
- 跟我学Redis(9)—操作key命令
- 码农命名的基本规则
- C++之网络陷阱
- 图解Linux命令之--colrm命令
- select和epoll的性能差别
- hdu 1856 (More is better)
- 前端资源(优秀网站、博客、以及活跃开发者)
- Android development: What I wish I had known earlier
- Android内存泄漏总结
- 图论之prim算法
- 认识maven