UNIX网络编程
文章平均质量分 51
Kingbaiyulong
这个作者很懒,什么都没留下…
展开
-
使用waitpid函数处理SIGCHLD信号-避免僵死进程
一:pid_t waitpid(pid_t pid, int *statloc, int options) 引用UNIX网络编程5.9-5.10节的内容,僵尸进程形成的原因大家都是很清楚了,这里不多解释,我们显然不能留存僵死进程,它们占用内核的空间,最终可能耗尽进程资源,所以我们得正确处理父进程以避免子进程变为僵尸进程。 我们一般使用函数waitpid来等待子进程,pid参数允原创 2016-09-11 15:40:07 · 505 阅读 · 0 评论 -
小笔记-pthread_cond_signal和pthread_cond_wait
一:应用背景UNIX网络编程第一卷30.12节用到了pthread_cond_signal和pthread_cond_wait来进行父子线程的通讯,在服务器端父线程accept来了一个新的连接,并通过pthread_cond_signal来通知线程池的一个子线程来处理该连接。二:关于pthread_cond_signal和pthread_cond_waitpthread_cond_wa原创 2016-10-10 16:37:32 · 234 阅读 · 0 评论 -
小笔记-setsockopt中SO_REUSEADDR选项
一 应用背景 我们知道,对于面向连接的TCP协议,先调用close函数的一方会进入TIME_WAIT状态,在linux下这个状态大概会保留2分钟,如果这两分钟之内(可以看作是服务进程终止了)监听服务器重启,也就是调用socket、bind、listen重新启动,那么将会出现“Address already in use”的错误。但是如果设置了SO_REUSEADDR选项,则不会出现原创 2016-10-11 14:59:18 · 568 阅读 · 0 评论 -
小笔记-TIME_WAIT状态
一 TIME_WAIT状态的发生 在TCP连接中主动关闭连接的一方将进入到TIME_WAIT状态。该端点停留在这个状态的持续时间是最长分节生命期(MSL,maximum segment lifetime)的两倍,也就是2MSL。二 TIME_WAIT状态存在的理由 (1)可靠地实现TCP全双工连接的终止。 (2)允许老的重复分节在网络中消逝。原创 2016-10-11 16:14:51 · 314 阅读 · 0 评论 -
小笔记-用位运算实现求平均数的一个较高效方法
一:方法如下(x&y)+((x^y)>>1)原创 2016-10-21 23:48:59 · 518 阅读 · 0 评论 -
高性能、高并发网络通信系统的架构设计
来自"祁峰"的CSDN博客:http://blog.csdn.net/qifengzou/article/details/239122671 引言 随着互联网和物联网的高速发展,使用网络的人数和电子设备的数量急剧增长,其也对互联网后台服务程序提出了更高的性能和并发要求。本文的主要目的是阐述在单机上如何进行高并发、高性能消息传输系统的框架设计,以及该系统的常用技术,但不对其技转载 2016-10-20 15:12:01 · 1710 阅读 · 0 评论 -
滑动窗口协议、拥塞窗口与拥塞避免算法
TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一 滑动窗口协议 ”窗口“对应的是一段可以被发送者发送的字节序列,因为是连续范围内的一段消息,所以被称之为“窗口”;因为窗口会随着发送过程的不断进行,可发送的段也在不断地移动(向右移动),所以称之为“滑动窗口“。滑动窗口协议可描述为下图: (1)原创 2016-12-20 22:15:34 · 959 阅读 · 0 评论 -
关于IO复用函数select的FD_SETSIZE的正确定义
一 FD_SETSIZE定义 首先,FD_SETSIZE的值在linux下一般被定义为1024,意思是select管理的描述符的最大值不能大于1024(1024也不行),参考linux的man page对FD_SET函数的一些提醒:Executing FD_CLR() or FD_SET() with a value of fd that is negative or is equal原创 2017-03-24 16:38:18 · 3670 阅读 · 0 评论