社区
C语言
帖子详情
关于linux c socket send()recv()的问题
xiaoyuaccp
2010-04-14 03:57:46
问题1 socket断开后(包括服务端主动断开或网络原因断开)再send()会不会溢出
问题2 int a=recv()返回int =0或int=-1代表什么意思
谢谢
...全文
491
9
打赏
收藏
关于linux c socket send()recv()的问题
问题1 socket断开后(包括服务端主动断开或网络原因断开)再send()会不会溢出 问题2 int a=recv()返回int =0或int=-1代表什么意思 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wesleyluo
2010-04-14
打赏
举报
回复
[Quote=引用 4 楼 xiaoyuaccp 的回复:]
引用 3 楼 huatian008 的回复:
引用 2 楼 xiaoyuaccp 的回复:
别来误导我
楼主给我们讲讲呗
现在我测试的结果是 socket断开后再send()会溢出 recv return 0是socket已断开 -1不知道是什么情况 请高手给讲下啊
[/Quote]
我也在学习
关于recv()的返回值,书上是这样定义的,返回实际读取的字符数目;当返回值为-1时表示发生错误。
返回值为0的时候就表示断开了,因为你没有读到数据。
不明白你的服务器主动断开的时候,你就已经没有sock了,怎么还可以send()呢?不会出错吗?
xiaoyuaccp
2010-04-14
打赏
举报
回复
[Quote=引用 5 楼 hairetz 的回复:]
引用楼主 xiaoyuaccp 的回复:
问题1 socket断开后(包括服务端主动断开或网络原因断开)再send()会不会溢出
问题2 int a=recv()返回int =0或int=-1代表什么意思
谢谢
1.如果是长连接,一般用心跳包来监听对面是否断开。若断开后,第一次调用send,数据应该会写入缓冲区,我不觉得会溢出,你说的溢出是啥意思。但是之后,再send应该就会返回失……
[/Quote]
溢出就是堆栈溢出 断开后第一次send()的确没有益处,第二次在send()就溢出了
猫已经找不回了
2010-04-14
打赏
举报
回复
问题一还可以参考下:
http://light6891.blog.163.com/blog/static/9696290920096253354467/
猫已经找不回了
2010-04-14
打赏
举报
回复
2.这个看你是阻塞模式,还是非阻塞模式。
以前有位GG已经想的很详细了,可以参考
http://topic.csdn.net/u/20090428/13/4fd54186-d70a-4ff7-9b57-4af83f225e90.html
猫已经找不回了
2010-04-14
打赏
举报
回复
[Quote=引用楼主 xiaoyuaccp 的回复:]
问题1 socket断开后(包括服务端主动断开或网络原因断开)再send()会不会溢出
问题2 int a=recv()返回int =0或int=-1代表什么意思
谢谢
[/Quote]
1.如果是长连接,一般用心跳包来监听对面是否断开。若断开后,第一次调用send,数据应该会写入缓冲区,我不觉得会溢出,你说的溢出是啥意思。但是之后,再send应该就会返回失败了。
xiaoyuaccp
2010-04-14
打赏
举报
回复
[Quote=引用 3 楼 huatian008 的回复:]
引用 2 楼 xiaoyuaccp 的回复:
别来误导我
楼主给我们讲讲呗
[/Quote]
现在我测试的结果是 socket断开后再send()会溢出 recv return 0是socket已断开 -1不知道是什么情况 请高手给讲下啊
huatian008
2010-04-14
打赏
举报
回复
[Quote=引用 2 楼 xiaoyuaccp 的回复:]
别来误导我
[/Quote]
楼主给我们讲讲呗
xiaoyuaccp
2010-04-14
打赏
举报
回复
别来误导我
摩尔信使MThings
2010-04-14
打赏
举报
回复
1、失败了。
2、0代表成功。-1代表出错
linux
下C语言
SOCKET
编程客户端、服务器端代码
linux
下C语言
SOCKET
编程客户端、服务器端代码
socket
_
linux
_client.c
#include //fopen();fwrite(); #include //标准函数库 #include //定义错误码 #include //字符串处理 #include #include //
send
();
recv
(); #include //htons(); #include //
send
();
recv
(); #include #include
linux
下的telnet客户端完整实现源码(c语言)
linux
下用c语言实现的telnet客户端,下载后,直接make运行,需要的用。
C语言开发
Linux
下web服务器(支持GET/POST,SSL,目录显示等)
C语言开发
Linux
下web服务器(支持GET/POST,SSL,目录显示等)
liunx C 网络编程
实现了服务器程序与客户端程序的交互,代码完整,相当实用
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章