摘要: 如果服务器没有及时的返回我们想要的内容,默认情况下recvfrom会永远阻塞的,直到服务器返回数据,这是对客户端是及其不友好的,所以必须加一个时间超时,如果在规定的时间内还是接收不到服务器传回来的数据,那么就停止阻塞。这是用信号实现的。 我设置了5秒的信号超时,如果在5秒前接收到了信息,那么就关闭这 阅读全文
posted @ 2017-11-19 14:52 颜小雀 阅读(1928) 评论(0) 推荐(0) 编辑
摘要: 1 #include "apue.h" 2 3 int main(int argc, char *argv[]) 4 { 5 int i,maxi,maxfd,listenfd,connfd,sockfd; 6 int nready,client[FD_SETSIZE]; 7 ssize_t n; 8 fd_set rset,allset; 9... 阅读全文
posted @ 2017-11-18 15:57 颜小雀 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 这个服务器版本提供了accept返回EINTR错误继续执行的机制,保证了稳定性,而且其创建的子进程服务进程也会被正常的回收掉。 子进程结束会给父进程返回一个SIGCHID信号,父进程捕获到这个信号之后会执行信号处理函数,进行子进程的回收。 阅读全文
posted @ 2017-11-17 18:39 颜小雀 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 函数原型: 第二个参数规定了内核应该为相应套接字排队的最大连接个数, 为了理解其中的backlog 参数,我们必须认识到内核为任何一个给定的监听套接字维护着两个队列! (1):未完成连接队列。每个这样的syn分节对应其中一项:已由某个客户发出到达服务器,而服务器正在等待完成相应的TCP三鹿握手的过程 阅读全文
posted @ 2017-11-16 22:54 颜小雀 阅读(1953) 评论(0) 推荐(0) 编辑
摘要: 1:不允许用户自定义新的运算符,只能对已有的运算符进行重载。 2:不能重载 . (成员访问运算符) *(指针) :: (域运算符) sizeof(长度运算符) ? : 3:重载不能改变操作数的个数。 4:不能改变优先级别 5:不可改变运算符的结合性 6:重载运算符的函数不可以有默认的参数。 7:重载 阅读全文
posted @ 2017-11-15 20:57 颜小雀 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 编程时候需要用到struct timer_list 结构体。 阅读全文
posted @ 2017-11-09 13:03 颜小雀 阅读(369) 评论(0) 推荐(0) 编辑
摘要: http://note.youdao.com/noteshare?id=9d427c06f6d1fc7731b63bdec1c35320 笔记都在有道云上面了。 阅读全文
posted @ 2017-10-22 13:16 颜小雀 阅读(409) 评论(0) 推荐(0) 编辑
摘要: http://note.youdao.com/noteshare?id=b1dcc228aa1b8679cd60581b573a609a&sub=4F48F09433BF47019EC7F0F400AAA579 放在有道云上面了。 阅读全文
posted @ 2017-10-22 13:11 颜小雀 阅读(239) 评论(0) 推荐(0) 编辑
摘要: http://note.youdao.com/noteshare?id=6475434a3c066fa132dd3180a9abeffb&sub=3F795306AAD24877B9790F666BD19136 笔记放在有道云上面了,再写一遍太麻烦。 阅读全文
posted @ 2017-10-22 12:59 颜小雀 阅读(273) 评论(0) 推荐(0) 编辑
摘要: http://note.youdao.com/noteshare?id=13bf0b7ac0e632948a3de595c24b9de5&sub=564B8384550B48019438DB18DF5D8D52 笔记放在有道云上面了,不想再写一遍了。 阅读全文
posted @ 2017-10-22 12:56 颜小雀 阅读(173) 评论(0) 推荐(0) 编辑