社区
网络编程
帖子详情
udp发送数据时,如果目标机不存在,sendto函数会不会阻塞?
kook_趙
2021-04-06 08:49:00
最近用Vxworks进行网络通信,发现目标机不存在时,用sendto函数发送udp数据包,出现阻塞的情况。
将sendto入口参数中的标志位设置成MSG_DONTWAIT 非阻塞后,不再出现阻塞情况。
但是有个疑问,udp不是无连接的吗?按理说不管目标机是否存在,调用sendto后不都应该是把数据包复制到底层缓冲区立刻就返回了吗?
...全文
670
2
打赏
收藏
udp发送数据时,如果目标机不存在,sendto函数会不会阻塞?
最近用Vxworks进行网络通信,发现目标机不存在时,用sendto函数发送udp数据包,出现阻塞的情况。 将sendto入口参数中的标志位设置成MSG_DONTWAIT 非阻塞后,不再出现阻塞情况。 但是有个疑问,udp不是无连接的吗?按理说不管目标机是否存在,调用sendto后不都应该是把数据包复制到底层缓冲区立刻就返回了吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
QQ1289671197
2021-06-18
打赏
举报
回复
用selec配合FD_ISSET来设置超时效果更好。
zgl7903
2021-04-07
打赏
举报
回复
试试 setsockopt SOL_SOCKET,SO_SNDTIMEO 设置超时时间
UDP
的write/
send
to操作是否
会
阻塞
?
本文探讨了
UDP
协议的关键特性,包括
send
to操作为何不
阻塞
的原因,
UDP
如何处理大数据包的分片与重组,以及发包过大
时
的错误处理
机
制。同
时
介绍了libuv在事件循环中的作用。
UDP
-
阻塞
与非
阻塞
本文围绕
UDP
展开,介绍了其
阻塞
与非
阻塞
模式。
阻塞
模式下,未接收到数据接收
函数
不运行,CPU占用率低;非
阻塞
模式则相反。还阐述了数据来源与操作系统进程、内存及缓冲区的关系,以及发送
函数
的
阻塞
和非
阻塞
情况,最后说明了
UDP
数据报面向非连接、传输效率高但
会
丢包乱序的特点。
阻塞
模式和非
阻塞
模式下
send
、
send
to、recv、recvfrom的表现
本文详细介绍了在
阻塞
和非
阻塞
模式下,TCP的
send
、recv以及
UDP
的
send
to、recvfrom操作的行为。在
阻塞
模式下,
send
会
等待所有数据拷贝到缓冲区,
send
to
不
会
阻塞
,recv和recvfrom
会
阻塞
直到有数据到达。而在非
阻塞
模式中,
send
和
send
to操作
会
立即返回,recv和recvfrom在无数据
时
返回错误WSAEWOULDBLOCK。
记一次
UDP
的
send
to
函数
错误解决
本文详细解析了在使用select
函数
进行TCP和
UDP
监听
时
,
UDP
回射程序出现的
send
to错误现象。通过代码修改,增加了对recvfrom和
send
to
函数
返回值的判断,解决了因sockaddr_in结构体未初始化导致的参数无效问题。
TCP、
UDP
的
阻塞
和非
阻塞
模式
本文详细解析了socket在TCP与
UDP
协议下的
阻塞
与非
阻塞
模式工作原理,包括
send
、
send
to、recv及recvfrom
函数
在不同模式下的行为差异,帮助读者深入理解网络编程中数据发送与接收的
机
制。
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章