社区
Linux/Unix社区
帖子详情
writev函数发信导致客户端程序中止问题
latachong
2008-12-04 12:03:29
想问网络通信高手们一个问题
如果我调用writev函数客户端给服务端发信,但是服务端我设置一直拒绝接受,并且不切断通信socket。那么客户端发的信息会一直成功的发到socket上,但是服务器端则会丢失。
如果这种情况一直持续下去,会导致writev函数返回什么错误,或者收到什么中止的信号么?客户端发的信息会一直存在socket上,一直到缓冲区满么?
...全文
80
1
打赏
收藏
writev函数发信导致客户端程序中止问题
想问网络通信高手们一个问题 如果我调用writev函数客户端给服务端发信,但是服务端我设置一直拒绝接受,并且不切断通信socket。那么客户端发的信息会一直成功的发到socket上,但是服务器端则会丢失。 如果这种情况一直持续下去,会导致writev函数返回什么错误,或者收到什么中止的信号么?客户端发的信息会一直存在socket上,一直到缓冲区满么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
threeleafzerg007
2008-12-04
打赏
举报
回复
我这个菜鸟尝试回答一下
如果是TCP的话,你可以用tcpdump看看 ,可以预料的是 服务器 一旦自己的recvbuf满了之后 但应用程序没有接受recvbuf的数据 则会 ack当前 数据报 但是 advertised window 为0 而客户端收到此报文后 不会再发送带有数据的数据报 而是 启动1个坚持定时器 根据指数退避的算法 开始以 5 12 24秒等等 发送探查报文 了解另一端的 advertised window的大小。 并且一直不间断(和超时重传有点不同)
程序会 hang在writev调用上 除非你设置了 O_NONBLOCK
如果是UDP的话 我想客户端不会关心 server端收到情况 继续发 除非你在应用程序里加了 自己规定的协议。所以,
程序 运行正常。
UNIX环境高级编程
12.7 readv和
write
v
函数
304 12.8 readn和
write
n
函数
306 12.9 存储映射I/O 307 12.10 小结 311 习题 311 第13章 精灵进程 312 13.1 引言 312 13.2 精灵进程的特征 312 13.3 编程规则 313 13.4 出错记录 ...
UNIX环境高级编程(PDF)
本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多
函数
。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、 进程间通信以及各种I/O。在此基础上,分别...
readv和
write
v
函数
文章目录 基本概念 注意事项 参考资料: 基本概念 readv和
write
v
函数
用于在一次
函数
调用中读、写多个非连续缓冲区。有时也将这两个
函数
称为散布读(scatter read)和聚集写(gather
write
)。 #include ssize_t ...
readv
函数
和
write
v
函数
是个非常有用的
函数
。比如:当Web服务器解析完一个HTTP请求之后,如果目标文档存在且客户具有读取该文档的权限,那么它就需要发送一个HTTP应答来传输该文档。这个HTTP应答包含1个状态行、多个头部字段、1个空行和...
Linux io多块读写readv
函数
和
write
v
函数
fd参数是被操作的目标文件描述符。iov参数的类型是iovec结构数组,该结构体描述一块内存区。iovcnt参数是iov数组的长度,即有多少块内存数据需要...
write
v
函数
则将多块分散的内存数据一并写入文件描述符中,即集中写。
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章