高性能服务器开发
kvsp24
这个作者很懒,什么都没留下…
展开
-
定时器的设计
如果某一用户connect()到服务器之后,长时间不交换数据,一直占用服务器端的文件描述符,导致连接资源的浪费。这时候就应该利用定时器把这些超时的非活动连接释放掉,关闭其占用的文件描述符。这种情况也很常见,当你登录一个网站后长时间没有操作该网站的网页,再次访问的时候你会发现需要重新登录。 网络程序需要处理的第三类是定时事件,比如定期检测一个客户连接的活动状态。 主要有三种 1.socket选项中的SO_RCVTIMEO和SO_SNDTIMEO。 2.SIGANLRM信号 3.I/O复原创 2020-08-23 13:39:05 · 708 阅读 · 0 评论 -
服务器开发中用到的IO函数
1、readv()和writev() 主要是因为平常所用到的write与read只是用来对一片连续的内存区域进行操作。read对一篇连续区域的读操作,write对一篇连续区域的写操作。但对于非连续区域的操作用read或者write来,就效率低了很多了。readv和writev就是用来处理非连续区域(或者说,多片连续区域的读写操作的) 因为使用read()将数据读到不连续的内存、使用write()将不连续的内存发送出去,要经过多次的调用read、write。如果要从文件中读一片连续的数据至进程的不同区原创 2020-08-19 20:01:41 · 186 阅读 · 0 评论 -
高性能服务器程序框架
本节主要包括三个模块1、I/O处理单元,I/O的四种模型,两种高效的处理模式2、逻辑单元:两种高效并发模式,以及高效的逻辑处理方式–有效状态机3、存储单元1、服务器模型1.1 C/S模型 TCP/IP协议里面没有客户端与服务器的概念,通信过程都是对等的,只是由于人们的大部分的访问形式都是:多个用户向资源拥有方提出访问申请,资源拥有方提供资源响应。 C/S模型特别适合资源相对集中的场合,实现也很简单,但是缺点也很明显,就是访问量很大时,可能客户端会得到很慢的响应。p2p刚好就解决了这原创 2020-08-18 21:10:15 · 174 阅读 · 0 评论