抓包的问题? 本帖最后由 VisualEleven 于 2012-06-01 07:41:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题一:http://blog.csdn.net/cjf_iceking/article/details/7552802我的博客中的,实践过 问题二,你用的是何种方式捕获数据包的,pcap_loop? 嗯,就是pcap_loop。我是在pcap_loop里通过::PostMessage(h_maindlg,WM_USER_THREAD_PACKET, (WPARAM) (pkt), 0);把数据发到主线程去解析,然后再在列表控件显示出来。也就是每来一个数据,主线程就收一次消息,而迅雷的包太多,导致主线程消息太多,出了问题。不知道有没有这种可能? 打算再开一个界面线程。但不知怎么操作。我现在是如下操作的,各位看看可以不?继承class CMyUIThread : public CWinThread然后在CMyUIThread 类里写实现函数,通过pThreadjie = AfxBeginThread(RUNTIME_CLASS(CMyUIThread));的pThreadjie 这个指针调用,可以吗?可不可以直接用AfxBeginThread创建工作线程和界面线程?可以的话,怎么操作呢? 取包的间隔设置大些。Post数据时,可以累积一定之后再POST,不要每个包都POST消息。退出线程,如果要强制退出,处理WM_CLOSE消息,post消息或者event给线程。如果此时线程不是处于一个忙循环处理,wait这个退出even,然后释放内存,线程自己return。主线程检测线程状态。WaitSingleObject等待线程的退出事件激发,设置等待超时时间,超出,就强制terminal这个线程。如果你的工作线程里有循环,一定要在每个循环里检测是否有退出事件或者消息,没有继续循环,有了就收拾收拾,return。 怎么样叫累积一定之后再POST,不要每个包都POST消息呢? 你把工程上传到 csdn资源中去 给看下你是怎么做的......另外如果你在抓包之后需要解析展示:可以采用这个过程,一个进程负责抓包并将数据包存储与pcap文件中,通过管道通知主进程(解析展示进程),主进程从文件读取数据包并进行解析展示。 求推荐两本MFC底层通信相关的书籍 edit回车死机的问题 高手进来看看,猜出来的算法 如何动态创建不定数目按钮 编辑框问题 一个离奇的错误 COM对象的创建方式疑问 如何取得操作系统的语言设置 怎样访问局域网里另外一台计算机的ODBC数据源?用ADO 怎么编程实现“用AT命令读写串口”?? 编程 16进制如何转化ASCII码
我的博客中的,实践过
我是在pcap_loop里通过::PostMessage(h_maindlg,WM_USER_THREAD_PACKET, (WPARAM) (pkt), 0);把数据发到主线程去解析,然后再在列表控件显示出来。也就是每来一个数据,主线程就收一次消息,而迅雷的包太多,导致主线程消息太多,出了问题。
不知道有没有这种可能?
继承class CMyUIThread : public CWinThread
然后在CMyUIThread 类里写实现函数,
通过pThreadjie = AfxBeginThread(RUNTIME_CLASS(CMyUIThread));的pThreadjie 这个指针调用,可以吗?
可不可以直接用AfxBeginThread创建工作线程和界面线程?可以的话,怎么操作呢?
可以采用这个过程,一个进程负责抓包并将数据包存储与pcap文件中,通过管道通知主进程(解析展示进程),主进程从文件读取数据包并进行解析展示。