首先在这里谢谢各位的热情帮助。
可能我的问题还有描述清除。
但是,从一些朋友的回答当中,已经学到了很多东西。
现在的问题:

嗅探器(抓取数据包)是由libpcap库来实现的,而这个libpcap库是由C实现的。
使用C在控制台下完全可以获取一些网络数据包,并分析之。
但是,我得需要一个图形界面,故使用了QT来作图形界面。
问题,就是出现在了C(也就是libpcap)和QT混合起来;
由于在处理网络数据包的时候,使用到了回调函数(已经在上篇邮件当中说明);
怎样将这种策略转化为QT当中可使用的方法。


在 2011年12月21日 上午10:49,Leo Ding <leo.din...@gmail.com>写道:

> QT 的信号槽使用也很方便,QWidget编程还是挺简单的,如果用QGraphicsWidget写程序的话那一个郁闷啊,不过动画效果能做的很好
> ~~~~
>
> 在 2011年12月20日 下午8:53,曹朋 <a382...@gmail.com>写道:
>
> > 问题描述:
> > 笔者近日,在做网络嗅探器,其中用到一函数,pcap_loop(pcap_t *,int,pcap_hander callback,u_char
> *);
> > callback参数如下:(u_char *,const pcap_pkthdr *,const u_char *);其作用是,来一个数据
> > 包,调用一次callback,来一次调用一次。
> > 但,令笔者困惑的是,这个callback并不能被定义成类的成员,一旦定义成类的成员,编译便会报错
> > argument of type‘void (classname::)(u_char *,const pcap_pkthdr *,const
> > u_char *) does not match void (*)(u_char *,const pcap_pkthdr *,const
> u_char
> > *)’。
> >
> >
> 可是,不定义为成员,就访问不了类的成员。故,笔者换做了友元、static,编译,运行等,均不会有问题。可问题是,我想在callback当中使用类的成员。
> > callback是用来处理网络数据的。也就是说,我想在callback当中处理了数据之后,在赋值给类的某个成员。然后,显示在界面上。
> >
> >
> > 问题:
> > 如何在callback当中使用类的成员?或者,这个callback应该一何种方式来定义?在或者,如何通过QT的信号与槽机制来实现?
> > 或者,有没有一种方案来解决这个问题?
> > 或者,谁可以提供一个思路?
> >
> > 此为:笔者毕设,”基于Linux的网络嗅探器的设计与实现“
> > 自己当时的实现方案:
> > 1、使用libpcap首先在consle下实现抓包分析。
> > 2、学习QT界面。
> > 3、二者结合。。。就是这二者结合除了大问题了(当时也意识到,会出问题。。。libpcap(也就是C)+QT 混合编程)。
> > -------------- 下一部分 --------------
> > 一个HTML附件被移除...
> > URL: <
> >
> https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111220/24e95459/attachment.html
> > >
> > --
> > ubuntu-zh mailing list
> > ubuntu-zh@lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
> >
> -------------- 下一部分 --------------
> 一个HTML附件被移除...
> URL: <
> https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111221/339055ae/attachment.html
> >
> --
> ubuntu-zh mailing list
> ubuntu-zh@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: 
<https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111221/b88ee7f0/attachment.html>
-- 
ubuntu-zh mailing list
ubuntu-zh@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh

回复