随笔分类 -  TCP/IP

摘要:使用了 setsockopt函数,本例仅使用了读操作超时,若是想使用写操作超时使用SO_SNDTIMEO选项。读操作超时使用SO_RCVTIMEO. 阅读全文
posted @ 2017-11-19 15:53 颜小雀 阅读(871) 评论(0) 推荐(0)
摘要:1 #include"apue.h" 2 typedef void Sigfunc(int); 3 //void (*signal(int signo,void (*func)(int)))(int); 4 static void connect_alarm(int); 5 int connect_timeout(int sockfd,(SA*)pserveraddr,socklen_... 阅读全文
posted @ 2017-11-19 15:14 颜小雀 阅读(359) 评论(0) 推荐(0)
摘要:如果服务器没有及时的返回我们想要的内容,默认情况下recvfrom会永远阻塞的,直到服务器返回数据,这是对客户端是及其不友好的,所以必须加一个时间超时,如果在规定的时间内还是接收不到服务器传回来的数据,那么就停止阻塞。这是用信号实现的。 我设置了5秒的信号超时,如果在5秒前接收到了信息,那么就关闭这 阅读全文
posted @ 2017-11-19 14:52 颜小雀 阅读(2016) 评论(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 颜小雀 阅读(653) 评论(0) 推荐(0)
摘要:这个服务器版本提供了accept返回EINTR错误继续执行的机制,保证了稳定性,而且其创建的子进程服务进程也会被正常的回收掉。 子进程结束会给父进程返回一个SIGCHID信号,父进程捕获到这个信号之后会执行信号处理函数,进行子进程的回收。 阅读全文
posted @ 2017-11-17 18:39 颜小雀 阅读(209) 评论(0) 推荐(0)
摘要:函数原型: 第二个参数规定了内核应该为相应套接字排队的最大连接个数, 为了理解其中的backlog 参数,我们必须认识到内核为任何一个给定的监听套接字维护着两个队列! (1):未完成连接队列。每个这样的syn分节对应其中一项:已由某个客户发出到达服务器,而服务器正在等待完成相应的TCP三鹿握手的过程 阅读全文
posted @ 2017-11-16 22:54 颜小雀 阅读(1974) 评论(0) 推荐(0)