recvfrom函数获取的数据包的格式问题?似乎不一致!
使用 recvfrom(sock,buffer,sizeof(buffer),0,(struct sockaddr *) &from,&fromlen)
获取的数据包,格式上是否是 以太网数据帧头部+IP(或ARP)数据包头部+TCP(UDP,ICMP)的头部+传输数据?
看到一篇文章里面是如上这么说的,但是我在一个程序里面直接对buffer进行如下操作
ip=(struct IP *)buffer;
也能得到 Ip的头部信息;但是如果对IPv6这么直接用得到的信息又不对;
同时如果先对buffer执行 ehdr=(struct *)buffer,并不能获取以太网数据帧头部。
是函数获取的数据格式不是这个格式吗?我主要的目的之一是要获取这个以太网数据帧头部,不知如何解决?请指教!