- 1
- 0
- 约 53页
- 2017-07-29 发布于北京
- 举报
网络软件设计多路复用
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 阻塞与非阻塞的设置 例:设置套接字为阻塞态 例:设置套接字为非阻塞态 long arg; arg = 0; ioctlsocket( s, FIONBIO, arg ); 实验感受 long arg; ioctlsocket( s, FIONBIO, arg ); arg = 1; 操作对象 干什么 怎么干 套接字的默认状态为阻塞态 * 阻塞与非阻塞对程序设计的影响 网络软件设计中常遇到等待对方配合的现象 等,还是不等?--阻塞还是不阻塞? 这是个问题! 等 可能造成“等”此失彼--多路复用机制失效 不等! 容易形成“忙等”--浪费CPU资源 * 阻塞 socket so_q so_rcv so_snd …… while(1){ send(newsock,buf2,…); process buf1; prepare buf2; } while( recv(newsock,buf1,…)0){ } 套接字函数的阻塞对多路复用技术可能造成阻碍 FD_SET(s , readfds); if(select( 0,readfds,0,0,tmo) = 0){ if( FD_ISSET(s, readfds)){ } 如果recv阻塞, 多路复用就失去了意义
原创力文档

文档评论(0)