TCP流式服务的粘包问题及解决方法

TCP流式服务中可能出现数据包合并(粘包)现象,导致接收端无法正确解析。解决方法包括发送定长包、使用特定分隔符如 或者在包头添加包体长度信息。包头通常为定长,指示包体的长度,接收方据此接收数据。更复杂的方案是设计应用层协议以确保数据完整性和边界明确。
摘要由CSDN通过智能技术生成

TCP流式服务的粘包问题

有可能将两次send的内容合并在一起被接受端收到。
在这里插入图片描述

解决方法:
  1. 发送定长包
  2. 包层加入\r\n标记,FTP协议就是这么做的,但这种方案存在的问题就是,如果数据正文存在同样的字符,就会被误判为消息的边界
  3. 包头加上包体长度,包头是定长的4个字节,说明了包体长度,接收对等方先接受包体长度,依据长度来接收包体
  4. 使用更复杂的应用层协议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值