一、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