关于TCP

allset 2008-09-20 05:32:44
我在客户端往服务器端定时发送定长的应用层数据包,当网络状态不好时,重传的时候两次的发送数据包会被结合成一个数据包发送,因此在服务器端收到的是两个应用报文的叠加?这是怎么回事?该怎么解决啊?
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherlock_lai 2009-05-06
  • 打赏
  • 举报
回复
可以设置TCP的PSH位,具体忘了,去google吧
hhyttppd 2009-04-08
  • 打赏
  • 举报
回复
这应该就是所谓的粘包,你需要自己重新解包,不能依赖于一次recv刚好对应于一次send。
duke7y 2009-04-07
  • 打赏
  • 举报
回复
tcp特性就这样。
你可以在每个应用层数据包前加一个int数值标识后面应用数据有多长。这样你就可以在接收端把数据分开了。
yanghehong 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yanghehong 的回复:]
这可以说由TCP的面向比特流的特性和滑动窗口协议决定。
TCP层可以重新打包重传队列的TCP Segment。

可以参加RFC 793.

-千里
[/Quote]

打错字.

这可以说由TCP的面向字节流的特性和滑动窗口协议决定。
TCP层可以重新打包重传队列的TCP Segment。

可以参见RFC 793.
yanghehong 2008-09-21
  • 打赏
  • 举报
回复
这可以说由TCP的面向比特流的特性和滑动窗口协议决定。
TCP层可以重新打包重传队列的TCP Segment。

可以参加RFC 793.

-千里
allset 2008-09-20
  • 打赏
  • 举报
回复
哎!失败,没有人回答!

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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