Linux13-TCP\HTTP
一、TCP粘包问题
1.TCP在接受数据时,多包数据粘在一起
2.原因:
2.1TCP发送数据时,会根据缓冲区数据的情况进行重新组包
2.2TCP接收方,没有及时读走缓冲区数据,导致缓冲区大量数据缓存。
3.如何解决
3.1发指定大小字节
将要发数据,封装在结构体里
struct data
{
int id;
float tmp;
xxx
};
缺点:发送端与接收端体系不同,32位与64位对齐方式的不同造成数据丢失;所有要在指定的相同平台使用,注意结构体对齐问题。
3.2发送具有指定分隔符的数据
hello world\n
miss you\n
3.3封装自定义数据帧
AA len0C 0001 0112 1314 1504 XXXX XXXXBB
校验:8位和校验
16位和校验
二、网络抓包
抓取通过设备网卡的数据
wireshark:网络抓包工具
1.分析和追踪网络问题
2.查看网络协议栈
安装:sudo apt-get install wireshark
1.sudo wireshark
2.选择通信设备的网卡==》any