社区
网络编程
帖子详情
请问在阻塞模式下使用sendto会不会阻塞,在什么情况下阻塞和如何避免?
chengwei_xj
2003-09-15 11:33:58
还有,如果会阻塞,是不是意味着在阻塞模式下,每一个sendto操作都应该放在一个发送线程中去?
...全文
305
6
打赏
收藏
请问在阻塞模式下使用sendto会不会阻塞,在什么情况下阻塞和如何避免?
还有,如果会阻塞,是不是意味着在阻塞模式下,每一个sendto操作都应该放在一个发送线程中去?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chengwei_xj
2003-12-02
打赏
举报
回复
谢谢大家
chengwei_xj
2003-09-16
打赏
举报
回复
up
chengwei_xj
2003-09-15
打赏
举报
回复
sendto在什么情况下阻塞呢?
ypos
2003-09-15
打赏
举报
回复
sendto就算阻塞也应该不会阻塞很久,因为只是发送出去
gzshd
2003-09-15
打赏
举报
回复
如果在阻塞模式下就可以不在线程里sendto了,阻塞模式下,当程序执行到sendto时,该线程就停住,等sendto函数完成返回后,再向下运行,而非阻塞模式就不等sendto,而接着向下运行
howtotell
2003-09-15
打赏
举报
回复
不会吧。
Linux UDP socket 设置为的非
阻塞
模式
与
阻塞
模式
区别
主要介绍了Linux UDP socket 设置为的非
阻塞
模式
与
阻塞
模式
区别的相关资料,需要的朋友可以参考下
Linux UDP socket
阻塞
模式
与非
阻塞
模式
的差异
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在网络编程中,
阻塞
模式
和非
阻塞
模式
是两种常见的 I/O
模式
,它们对程序的效率和资源利用有着重要影响。本文将详细探讨 Linux 环境下 UDP Socket 的
阻塞
模式
与非
阻塞
模式
的区别,以及它们各自的应用场景。
阻塞
模式
:在这种
模式
下,当执行 I/O 操作(如读写)时,如果条件不满足(如无数据可读或缓冲区已满),进程
会
被挂起,直到条件满足。 非
阻塞
模式
:在这种
模式
下,如果 I/O 操作的条件不满足,则
会
立即返回错误码或特定值,而不是挂起进程。 读操作:recvfrom() 函数
会
在没有数据可读时
阻塞
,直到接收到完整的数据报。 写操作:
send
to() 函数通常
不
会
因发送缓冲区满而
阻塞
,因为 UDP 不维护发送缓冲区。 示例代码: 读操作:如果接收缓冲区为空,recvfrom()
会
立即返回错误(通常是 EWOULDBLOCK)。 写操作:与
阻塞
模式
类似,
send
to() 通常
不
会
因发送缓冲区满而
阻塞
。 示例代码: MSG_DONTWAIT 标志表示即使无数据可读也
不
会
阻塞
。
阻塞
模式
:TCP 的读操作
会
阻塞
直到有足够数据可读;写操作如果发送缓冲区满也
会
阻塞
。 非
阻塞
模式
:读操作无数据可读时立即返回错误;写操作如果发送缓冲区满则返回错误。
阻塞
模式
:适用于需要等待特定事件(如客户端连接或数据)的场景,适合处理单个连接,但可能浪费资源。 非
阻塞
模式
:适用于高并发场景,如 Web 服务器,通过轮询多个连接状态,可高效利用 CPU 资源,提升性能。 通过对比 Linux UDP Socket 的
阻塞
模式
与非
阻塞
模式
,可以看出它们在行为和适用场景上的差异。合理选择
模式
可以显著提升程序效率和响应能力。希望本文能帮助读者更好地理解和运用这两种
模式
。
非
阻塞
udp server
非
阻塞
udp server,适合udp非
阻塞
通信
VC2010,非
阻塞
UDP简单源码
VC2010,非
阻塞
UDP简单源码,IP神马的,自己修改下就OK了
DNS 解析协议 c 函数, 实例, 方便构造自己的非
阻塞
解析函数, 适用于任何平台
DNS 解析协议函数, 实例, 方便构造自己的非
阻塞
解析函数, 适用于任何平台
网络编程
18,357
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章