C语言socket接收数据为什么不是预期数据?

如题,通过C语言想模拟抓包程序对socket端口进行数据接收。

被抓包程序指定的发送地址和端口就是C语言编写的接口,可是通过socket中的

read()函数接收数据却和 wireshark抓包程序的内容不同,求问如何接收到正确的数据?

图1:自己编写的socket程序接收的某数据:
图片说明

图2:应该接收的数据:

图片说明

求解。谢谢。

抓包的数据还包括了一些额外的控制信息,socket只是相当于正文。