有很多书和很多贴子,讲到和讨论tcp/ip的格式。  这是tcp/ip的底层技术。  但是,我们用socket写程序,是用不到这些技术的,因为它已经把tcp/ip格式封装好了。  用什么写程序,会用到tcp/ip的格式呢? 有比socket更加“底层”的方法吗?

解决方案 »

  1.   

    所谓原始套接字,是不是就是 socket sdk? 即accept,listen,bind 等函数?从mac层开始封包,该调用什么函数呢?
      

  2.   

    如果想自己封包,就写驱动吧,或者防火墙也行:)
    在SOCKET级别的编程是不需要自己动手封包的~``````
      

  3.   

    所谓原始套接字,是不是就是 socket sdk? 即accept,listen,bind 等函数?==============================================================================   原始套接字是 raw socket,允许你自己修改 IP头
      

  4.   

    还是要用到别人已经帮你弄好的函数,我也想什么都自己弄,头文件都想自己写。但是别人都帮我们弄好了,为什么还要自己再走一次呢?时间是有限的!---------------------------------就看你的目的是什么了。我现在想写一个类似防火墙的程序。 即两个局域网互相独立,但是有一台电脑可以连接这两个网络。 两个网络之间互相访问,必须通过这台特殊的电脑。这台特殊电脑里,运行字节写的程序,它的任务是处理两个网络之间的tcp/ip连接,并且对连接的以下内容进行限制:
        ip地址、网卡物理地址、端口号
    只允许这三个条件符合要求的连接才被允许。要实现这个功能,用socket肯定是不行的。
      

  5.   

    有啊!!最简单的方法莫过于用 winpcap !使用方便,而且免费
      

  6.   

    用winpcap就对了,现在已经出到3.1beta版了
      

  7.   

    楼上的兄弟,什么是RAW,和TCP,UDP有什么关系吗?
      

  8.   

    我个人认为NETBIOS编程接口比WINSOCK更底层一些!
      

  9.   

    去看怎么实现 tcp/ip 的 C  程序
      

  10.   

    winpcap,或者更加底层的是ndis
    你可以自己提供一个协议stack
      

  11.   

    我觉得你可以自己开发接口协议,如果可以的话,32位汇编可以帮你解决,从out/in端口读写开始写起吧
      

  12.   


    套接字原始套接字TDI  NDIS