社区
Linux/Unix社区
帖子详情
send返回-1能马上close掉吗?
sunxking
2003-02-16 11:07:05
如果用非阻塞模式的话,只要一断线,send马上就返回-1,实际上,并没有完哪,插上线还可以继续传呢。
用阻塞模式的话,就会一直阻塞,此时会有返回值吗?
为什么很多书上明明用了阻塞模式还要判断返回值(他们也并没有用信号量来判断超时)难道阻塞很长时间后会返回?
洗完听听高手的意见。
用阻塞模式和非阻塞模式应该分别怎么做才能保证传输的稳定性。
...全文
54
回复
打赏
收藏
send返回-1能马上close掉吗?
如果用非阻塞模式的话,只要一断线,send马上就返回-1,实际上,并没有完哪,插上线还可以继续传呢。 用阻塞模式的话,就会一直阻塞,此时会有返回值吗? 为什么很多书上明明用了阻塞模式还要判断返回值(他们也并没有用信号量来判断超时)难道阻塞很长时间后会返回? 洗完听听高手的意见。 用阻塞模式和非阻塞模式应该分别怎么做才能保证传输的稳定性。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
漫谈TCP(二)
send
()
返回
-1且errno=EAGAIN 此时唯一的原因就是
send
buffer已满,解决方法是在调用
send
()之前,加一个poll(fd)判断一下fd是否可写,如果fd就绪就发送,未就绪就下一次再发。这里poll也可以换成epoll或select。 多...
send
返回
值
在Unix系统下,如果
send
、recv、write在等待协议传送数据时,socket被shutdown,调用
send
的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。此种情况应用就很难查出处理进程为什么退出。 ...
用实际程序来测试udp
send
to函数的最大发包大小------为什么是65507?
我们知道, IP包头有一个16bit的长度, 对应的二进制最大值是2^16 -1,也就是说一个IP包整个长度的最大值是2^16 - 1 字节, 如果考虑UDP通信, 那么除去IP头的20个字节, 除去UDP头的8个字节, 还剩2^16 - 1 - 20 - ...
TCP连接断开后
send
还是能发送成功吗?
如题,突然有个疑问,加入server 和client通过TCP建立连接后,server...但是第二次
send
()就会失败,
返回
-1 Errno 32, Broken pipe。 同时也抓不到报文。 测试代码如下 //server #include<stdlib.h> #include
c语言read()
返回
-1,errno:Connection reset by peer
客户端read()函数
返回
-1,errno104 : Connection reset by peer,查了一下原因: 这意味着收到了TCP RST包,可以使用tcpdump + wireshark抓包分析,并且连接现在已经关闭,这种情况可能是因为对方崩溃,或者对方...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章