本人刚学MFC,想做一个抓包的程序,希望能看到包的内容,但感觉无从下手,在这里向各位大侠请教,谢谢了。

解决方案 »

  1.   

    baojian88888(机器人),你能说得再详细些吗?谢谢了
      

  2.   

    http://dev.csdn.net/develop/article/21/21352.shtm
      

  3.   

    http://www.xfocus.net/articles/200209/447.html
      

  4.   

    首先这与MFC没什么关系,只要会C/C++就行,方法有多种:
    1、用Wincap,它是一个SDK开发包,功能比较强大,可抓到MAC以上层的包,网上例子也很多;
    2、用原始套接字(RAW_SOCKET),使用起来比较容易,但只能catch到IP以上层的包,例子也很多;
    3、用NDIS,比较难,但功能最强大。
      

  5.   

    学什么MFC,不要学那个东西了,还是把win32给熟悉了要紧,建议你还是学习win32 程序设计.
      

  6.   

    代码如下:
    int decode(int len,unsigned char *pst)
    {
    int fullline,remainline,i,j;
    if(len<0)return -1;
    fullline=len/16;
    remainline=len%16;
    TRACE("\n");
    for(i=0;i<fullline;i++)
    {
    for(j=0;j<16;j++)
    TRACE("%02X ",pst[i*16+j]);
    TRACE("\t");
    for(j=0;j<16;j++)
    {
    if(pst[i*16+j]<32||pst[i*16+j]>128)
    TRACE("%c",'.');
    else   
    TRACE("%c",pst[i*16+j]);
    }
    TRACE("\n");
    }

    for(j=0;j<remainline;j++)
    TRACE("%02X ",pst[i*16+j]);
    for(j=remainline;j<16;j++)
    TRACE("   ");

    TRACE("\t");
    for(j=0;j<remainline;j++)
    {
    if(pst[i*16+j]<32||pst[i*16+j]>128) 
    TRACE("%c",'.');
    else   
    TRACE("%c",pst[i*16+j]);
    }
    TRACE("\n");

    return 0;

    }这个可以满足你第二个需求,看包里的内容,传一个长度,一个buf进去,就可以在debug栏看到了。都是以十六进制显示,希望对你有所帮助