社区
Linux/Unix社区
帖子详情
为什么要不套接字设置成为非阻塞模式
wangzhaoyang121
2013-03-21 11:46:02
为什么要把套接字设置为非阻塞模式?
与阻塞模式比较,非阻塞模式有什么优势?
什么情况下用非阻塞模式?
套接字设置非阻塞方法:
一种是:通过fcntl(fd, F_SETFL, NOBLOCK)加select;
第二种:直接是select();
请各个大侠指教!!!
...全文
332
7
打赏
收藏
为什么要不套接字设置成为非阻塞模式
为什么要把套接字设置为非阻塞模式? 与阻塞模式比较,非阻塞模式有什么优势? 什么情况下用非阻塞模式? 套接字设置非阻塞方法: 一种是:通过fcntl(fd, F_SETFL, NOBLOCK)加select; 第二种:直接是select(); 请各个大侠指教!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Roxxette
2013-03-23
打赏
举报
回复
实际应用中主要是对套接字读写添加超时控制
zz_d
2013-03-22
打赏
举报
回复
当你需要读取套接字立即返回, 设置成非阻塞. 当你一定要读到数据, 设置成阻塞.
nostopstep
2013-03-22
打赏
举报
回复
这个问题其实问的很不错,未解决这样的问题,正像二楼所说,要说清楚,得一大堆,因此,你可以看一下5中IO模式,完成端口作为重点查看。高性能服务器的网络通信都是用非阻塞模式。这里面涉及到的东西也很多。涵盖了多线程、线程池、线程同步和数据互斥等。正式网络传输的精华所在。
恨天低
2013-03-21
打赏
举报
回复
要解释得说一堆的话。 《Unix网络编程》第一卷,第六章,IO复用。自己去看一遍。
skyandcode
2013-03-21
打赏
举报
回复
阻塞程序就停止在那里了当然不好啊,非阻塞可以可以马上返回做别的事。 select方法效率太低了,要一直去监视有没有事件到来很耗时间。 其它方法很多,最有效的是完成端口模型。我的博客有简单的介绍可以看看。
youngwolf
2013-03-21
打赏
举报
回复
select与阻不阻塞没有关系,它不会修改套接字的属性的; 在阻塞状态下,某些时候,用select poll epoll仍然不能解决阻塞的问题,此时就需要设置为非阻塞,比如: 你要写的时候,select告诉你可写,但由于你写得太多,所以仍然可能阻塞; 你用epoll在ET模式下时,必须设置为非阻塞,因为你要读取完所有的数据,epoll_wait才会再次触发,此时一般用非阻塞模式,一直读到出错为止。 当然,似乎是有些函数,可以知道某个套接字现在读写缓存里面有多少数据,有多大的剩余,但我从来没用过,这显然会损失效率的。
Carl_CCC
2013-03-21
打赏
举报
回复
第六章只讲了区别,看16章,非阻塞可以减少壁钟问题,书上说的,貌似很少用。
Linux内核源代码情景分析 (上下册 高清非扫描 )
- 基于
套接字
的通信还包括其他操作,如
设置
选项、
非阻塞
模式
等。 #### 第8章 设备驱动 - **8.1 概述** - 设备驱动是操作系统和硬件设备之间的桥梁。 - 设备驱动负责管理硬件设备,并为用户提供访问硬件的接口。 ...
计算机网络 socket阻塞和
非阻塞
设置
为
非阻塞
后使用recvfrom函数会报错10035(无法立即完成一个非阻止性
套接字
操作),报这个错误是因为接收但没有数据,所以我们使用这个
设置
为
非阻塞
后使用recvfrom函数时要不理会这个10035报错。//
设置
socket阻塞...
【网络编程】TCP
套接字
编程
流式
套接字
编程针对的是TCP 协议通信,即面向...(3)将
套接字
设置
为监听
模式
等待连接请求(使用函数listen), 这个
套接字
就是监听套 接字了。(4)请求到来后,接受连接请求,返回一个新的对应于此次连接的
套接字
(accept)。
Windows Socket
套接字
(一)
MSDN:socket function ...阻塞
模式
(默认)和
非阻塞
模式
ioctlsocket函数可
设置
二.
套接字
函数 1.WSAStartup WSAStartup函数用于初始化wa2_32.dll动态链接库。 int WSAStartup(WORD wVersionReques
基于Windows
套接字
的网络编程(MFC)
从CSocket编程模型知道,服务器端需要两种
套接字
,一个用来侦听连接请求,一个用来与请求连接的
套接字
建立连接。因此,利用类向导为程序添加两个CSocket和。下面在
套接字
类里加入对话框类信息。1然后在两个
套接字
类...
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章