TCP Socket 长连接问题

chrischeng03 2010-06-24 04:36:47
最近在做Linux 下Socket长连接编程时遇到一个问题,当Socket有一段时间没有数据发送(这时Socket客户端和服务器端还是连接着的),突然发送一条信息,调用send函数成功,但是接收方却接收不到信息,当紧接着再发送一次时则可以收到(前一次的包已经丢弃了),请各位大虾指点下。
环境:Linux
语言:c++
...全文
737 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nov_c 2010-12-20
  • 打赏
  • 举报
回复
抓包看下失败发生在什么地方
koolxiaoyuer 2010-12-20
  • 打赏
  • 举报
回复
心跳包,学习了
JieCh121599 2010-12-20
  • 打赏
  • 举报
回复
会不会是在Client::recv()的时候,没有WaitSingleEvent(),导致文件接收的顺序错误?
zuoguodang 2010-12-20
  • 打赏
  • 举报
回复
发心跳啊
flandy_feng 2010-12-19
  • 打赏
  • 举报
回复
可以抓包分析下,看数据包究竟有没发送成功;或者对方有没收到数据包。
sharpor 2010-12-19
  • 打赏
  • 举报
回复
这个问题应该不是心跳的问题。
应该是接收端处理程序问题的可能性比较大。
检测方法是抓包。看第一次send的时候,网络上是不是走了send的数据。我觉得应该是走了数据。
longren331100 2010-12-17
  • 打赏
  • 举报
回复
up,围观学习中
全速前行 2010-12-17
  • 打赏
  • 举报
回复
这样说太笼统了,下一次再发送,客户就能接到,说明连接没有断开。
lz还是考虑其他方面原因
汗晕倒 2010-06-30
  • 打赏
  • 举报
回复
mark~~~~~~~
秋悦恒迹 2010-06-30
  • 打赏
  • 举报
回复
DDDDD
mofeellassie 2010-06-30
  • 打赏
  • 举报
回复
服务器端不能有效的判断客户端是否在线也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情况
mofeellassie 2010-06-30
  • 打赏
  • 举报
回复
服务器端不能有效的判断客户端是否在线也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情况
Jonix 2010-06-29
  • 打赏
  • 举报
回复
TCP 包怎么会丢呢?
  • 打赏
  • 举报
回复
up^
Xiaoloveliuforever 2010-06-29
  • 打赏
  • 举报
回复
你这样泛泛的说 实在不知道哪里出问题了
不过TCP是可靠的连接 不会出现丢包的情况 这是可以肯定的
赵4老师 2010-06-29
  • 打赏
  • 举报
回复
《TCP-IP详解卷一:协议》第17到23章
herman~~ 2010-06-29
  • 打赏
  • 举报
回复
应该是没有保持连接的问题了
chrischeng03 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lianshaohua 的回复:]
Keep-Alive的问题,设置为true,
[/Quote]

试了用Keep-Alive还是丢包啊
chrischeng03 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 macrojj 的回复:]
Mark
[/Quote]

试了,好像还是不行啊
yongta 2010-06-28
  • 打赏
  • 举报
回复
Socket连接保持一段时间后也会释放吧.
加上心跳检测包或者握手相关的消息,发送成功对方应该是收到了,
加载更多回复(16)

64,631

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧