社区
通信技术
帖子详情
send()调用返回时是否已经全部发送完成?
Sodar
2000-09-08 08:34:00
我说得是在阻塞模式下。如果调用send()函数发送一个很大的数据包,能否在函数返回的时候保证已经全部发送完成了?
谢谢
...全文
188
5
打赏
收藏
send()调用返回时是否已经全部发送完成?
我说得是在阻塞模式下。如果调用send()函数发送一个很大的数据包,能否在函数返回的时候保证已经全部发送完成了? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sodar
2000-09-11
打赏
举报
回复
谢谢各位,不过我还没有实验。先把分送上。
FengSC
2000-09-08
打赏
举报
回复
那要看你的"发完"是指什么意识如果是指本地已经送出,那是对的;如果是指对方接收到,那不一定正确。
nieyongxin
2000-09-08
打赏
举报
回复
FengSC说的是不对的,Gangster说的对了一半,
udp只管向外发送,对方有没有收到,它是不管的,它的优点是发送效率高。
TCP是可靠的,阻塞方式下必须等对方全部收到才会返回TRUE。
建议不要使用阻塞方式,如果对方没收到,则必须等TIMEOUT才能进行下一步操作,而之期间
则象假死机一样,建议使用消息或事件机制。
Gangster
2000-09-08
打赏
举报
回复
如果函数返回,有两种情况,一是有错,会马上返回,返回直是SOCKET_ERROR用WSAGetLastError()可得到具体错误。
二是正确返回,那数据就全发了,如果你用tcp那对方能受到,用udp则不一定
playpcgame
2000-09-08
打赏
举报
回复
FengSC说的是对的
调用
send
发送
网络数据包一定会立马
发送
出去吗?
Linux应用层
调用
了
send
发送
网络数据,那么按照简单的思维,这个动作会触发网卡
发送
数据,而现实并不是如此! socket层 首先对于
send
来说,分为阻塞
发送
和非阻塞
发送
: (1)阻塞操作 内核会检测
发送
缓冲区
是否
存在...
学习笔记:MPI的四种通信模式
发送
调用
正确
返回
是否
意味着
已经
发送
完成
?(
发送
缓冲区
是否
已经
可用?/数据
是否
已经
到达接收缓冲区?) 标准通信模式 MPI自身决定
是否
对
发送
数据进行缓存。 若缓存
发送
数据,则
发送
调用
的正确
返回
不依赖于...
socket的
send
系统
调用
不管
是否
阻塞,
send
发送
的大小,并不代表对端recv到多少的数据. 阻塞模式下,
send
函数的过程是将应用程序请求
发送
的数据拷贝到
发送
缓存中
发送
并得到确认后再
返回
.但由于
发送
缓存的存在,表现为:如果
发送
缓存大小比...
Linux
send
系统
调用
调用
send
,
调用
__sys_
send
to 应用层将待
发送
的数据放在自己申请的buff中 INETsocket层将数据放在msghdr{}中 INETsocket以下的层将数据放在sk_buff{}中 在
send
to的系统
调用
中,首先找到BSD socket,再
调用
send
_...
send
返回
值
在Unix系统下,如果
send
、recv、write在等待协议传送数据
时
,socket被shutdown,
调用
send
的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。此种情况应用就很难查出处理进程为什么退出。 ...
通信技术
4,358
社区成员
28,927
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章