这个blog日常记录一下
(之前写计网实验的时候,有一个问题是做聊天软件(类似QQ))?
不讨论一些花里胡哨的功能(历史记录保存之类的)
单单考虑多链接的问题。
一个问题是多个链接的时候该如何处理?
刚好也是学OS —— 第一个想法是多线程/多进程,当一个Client请求服务器链接时,就创建一个Thread分配给客户端,让Thread处理每一个客户端。
但是又想到一个问题是这个Thread一直While死循环监听处理感觉不是很优美(感觉网上的很多网络编程教学好像都用了while)
实际来说应该是有一个类似监听机制吧(之前写过QT、图形学的时候就可以监听鼠标、键盘的输入之类的),但是没了解过这个socket接口用什么监听。
后面也是无意间看到一篇python Select接口实现监听的,最近也看到了epoll(好像比select更好用)
[补充 2021.5.9]
话说这部分内容其实就是程序间交互和通信(深入理解计算机系统那本书后面有讲,不过学校没注重这部分(还是要好好读砖头书呀))
转载几篇博客学习
IO多路复用的三种机制Select,Poll,Epoll 似水牛年
作为C++程序员,应该彻底搞懂epoll高效运行的原理
什么是I/O多路复用 —— 知乎上看到一个比较有意思的比喻(转过来)