m_s = socket( AF_INET , SOCK_RAW , IPPROTO_IP ) ;SOCK_STREAM(字节流套接口)是TCP
SOCK_DGRAM(数据报套接口)是UDP
SOCK_RAW(原始套接口)什么意思?另:第三个参数
#define IPPROTO_IP              0               dummy for IP 
是什么意思?

解决方案 »

  1.   

    比如SOCK_STREAM报文内容不包括所有TCP报头信息
    比如SOCK_DGRAM报文内容不包括所有UDP报头信息
    比如SOCK_RAW报文内容不包括所有信息,包括IP报头,包括比如IGMP标志位等等
      

  2.   

    链路层的socket,由于ip,tcp、udp都在更上层,因此他不会包含那些信息咯
      

  3.   

    #define IPPROTO_IP              0  表示协议是IP
      

  4.   

    应用上面“比如SOCK_STREAM报文内容不包括所有TCP报头信息”
    不包括?什么意思?是不是这样
    用SOCK_STREAM的socket可以receive TCP报文
    用SOCK_DGRAM的socket可以receive UDP报文
    用SOCK_RAW的socket可以receive 很多报文,包括TCP报文,UDP报文,ICMP报文。是这样么?
      

  5.   

    每一个数据报文都有一个头,包含诸如源地址/目标地址/协议类型等信息,使用SOCK_RAW,你可以获取到这些头信息,否则不可以