1.IPPROTO_IP与IPPROTO_RAW有什么区别?
2.如果在创建socket时协议类型使用SOCK_RAW,协议使用IPPROTO_UDP的情况下, 不设置IP_HDRINCL项可以吗,
  我自己来填充UDP头信息, 系统会自动填充IP头发送出去吗?
  socket(sock, SOCK_RAW, IPPROTO_UDP);
3.如果在创建socket时协议类型使用SOCK_RAW,协议使用IPPROTO_IP的情况下, 不设置IP_HDRINCL项可以吗,
  我自己来填充IP头信息, 在发送时系统会不会把我填充的IP头做为数据,再自动填充IP头呢?
  socket(sock, SOCK_RAW, IPPROTO_IP);

解决方案 »

  1.   

    SOCK_IP 针对 IP 协议; SOCK_RAW ,包括对ATM 等协议的支持;请参考《windows 网络编程》 13章
      

  2.   

    给你贴点东西!
    SOCK_RAW ,MSDN 解释:
    Provides a raw socket that allows an application to manipulate the next upper-layer protocol header. To manipulate the IPv4 header, the IP_HDRINCL socket option must be set on the socket. To manipulate the IPv6 header, the IPV6_HDRINCL socket option must be set on the socket. 
      

  3.   

    以原始套件字进行创建 还没有听说过协议使用IPPROTO_UDP 先看看TCP/ip 详解。
      

  4.   


    LZ可能要失望了. 原始套接字直接发包在xp下已经被某个补丁封杀了.只能抓包了.想发包要换到win2000.
    我空间有些代码你可以下下. 封杀原因估计是用这个功能做D.O.S攻击的人太多了。