lionel chang

导航

2012年10月3日 #

select,poll,epoll总结

摘要: select,poll,epoll这三个函数是服务器端开发必须要精通的函数,而且也是面试中常会问到的知识。其中select和poll的功能比较相似,而epoll是linux所特有的,是linux对poll的改进版。以下是这三个函数的主要特点:select:1.select对每个所监视的描述符进行轮循,当描述符增加时,select的效率就会下降;2.select所能监视的描述符是有上限的3.在用户态和内核态之间传送文件描述符集的数据结构的开销是比较大的。poll:1.与select的第一点相同;2.监视的描述符没有最大限制,因为使用的是链表的方式3.与select的第三点大致相同,但poll传递 阅读全文

posted @ 2012-10-03 15:55 woshizyl 阅读(189) 评论(0) 推荐(0) 编辑

tcp长连接与短连接

摘要: 长连接就是在TCP建立连接后,读写一次数据完成之后并不立即释放连接,而短连接是在一次TCP连接之后只进行一次数据的读写就释放连接。编程中要使一个套接字所建立的连接成为长连接,可以使用setsockopt()函数。它使用的是TCP的keepalive定时功能,利用sysctl -a|grep tcp_keepalive可以查看内核中对keepalive的设置。net.ipv4.tcp_keepalive_time = 7200net.ipv4.tcp_keepalive_probes = 9net.ipv4.tcp_keepalive_intvl = 75以上是keepalive的三个属性设置。 阅读全文

posted @ 2012-10-03 14:37 woshizyl 阅读(214) 评论(0) 推荐(0) 编辑