资源简介
包括源程序和详细的使用说明个,同时内付相关的软件
编程环境:
操作系统:Windows XP SP2
开发语言:C++ / MFC
编译环境:MS Visual C++6.0
第3方函数库:Winpcap3.1
使用说明:
1. 启动:
程序启动后首先出现网卡选择对话框,如图1所示,在设备列表中选择需要进行捕获的网卡。
2. 界面:
选择网卡后出现程序主界面,界面设计主要参照了一款比较优秀的网络协议分析工具Iris的图形化界面,采用切分窗口风格,整个程序界面分为三部分:左侧为树形视图,右侧上半部分为列表视图,右侧下半部分为编辑视图
3. 功能:
1) 如果不做任何设置,程序默认为混杂模式,点击按钮① 后,程序开始捕获网络上传输的所有数据包,并将它们显示在列表视图中。点击按钮② 停止捕获。
2) 点击列表视图中的某一行后,对应于该数据包的详细字段分析和原始数据将分别显示在左侧树形视图和右下的编辑视图中,如图2所示。
3) 列表视图中显示的最大数据包数量为2000条,超过后列表视图将清空并重新开始。另外程序还提供了在任意时刻清空当前列表视图中所有数据包的命令(提供该命令的原因是经常会有这样的情况:即列表视图中已经有了很多消息了,但目前只需要关注从即刻起之后到来的消息,这时以前的消息就不再有用并且会影响我们对所要消息的选择)。要使用该命令请在列表视图中任意位置单击鼠标右键,在弹出的菜单中选择“全部清空”
代码片段和文件信息
// ctrlext.cpp :
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include “stdafx.h“
#include “ctrlext.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define new DEBUG_NEW
/////////////////////////////////////////////////////////////////////////////
// Inline function declarations
#define _AFXCTL_INLINE inline
/////////////////////////////////////////////////////////////////////////////
// CTreeCtrlNode
const CTreeCursor& CTreeCursor::operator =(const CTreeCursor& posSrc)
{
if(&posSrc != this){
m_hTreeItem = posSrc.m_hTreeItem;
m_pTree = posSrc.m_pTree;
}
return *this;
}
CTreeCursor CTreeCursor::_Insert(LPCTSTR strItemint nImageIndexHTREEITEM hAfter)
{
TV_INSERTSTRUCT ins;
ins.hParent = m_hTreeItem;
ins.hInsertAfter = hAfter;
ins.item.mask = TVIF_TEXT;
ins.item.pszText = (LPTSTR) strItem;
if(nImageIndex != -1){
ins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;
ins.item.iImage = nImageIndex;
ins.item.iSelectedImage = nImageIndex;
}
return CTreeCursor(m_pTree->InsertItem(&ins) m_pTree);
}
int CTreeCursor::GetImageID()
{
TV_ITEM item;
item.mask = TVIF_HANDLE | TVIF_IMAGE;
item.hItem = m_hTreeItem;
m_pTree->GetItem(&item);
return item.iImage;
}
/////////////////////////////////////////////////////////////////////////////
// CTreeCtrlEx
// All handled by inlines
/////////////////////////////////////////////////////////////////////////////
// CListCtrlEx
BOOL CListCtrlEx::AddColumn(LPCTSTR strItemint nItemint nSubItemint nMaskint nFmt)
{
LV_COLUMN lvc;
lvc.mask = nMask;
lvc.fmt = nFmt;
lvc.pszText = (LPTSTR) strItem;
lvc.cx = GetStringWidth(lvc.pszText) + 15;
if(nMask & LVCF_SUBITEM){
if(nSubItem != -1)
lvc.iSubItem = nSubItem;
else
lvc.iSubItem = nItem;
}
return InsertColumn(nItem&lvc);
}
//modified by wangjun for adding a lParam ie.32-bit application-specific value to be associated with the item.
//BOOL CListCtrlEx::AddItem(int nItemint nSubItemLPCTSTR strItemint nImageIndex)
BOOL CListCtrlEx::AddItem(int nItemint nSubItemLPCTSTR strItemLPARAM lParamint nImageIndex)
{
LV_ITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = nItem;
lvItem.iSubItem = nSubItem;
lvItem.pszText = (LPTSTR) strItem;
//added by wangjun
lvItem.lParam = lParam;
//added end
if(nImageIndex != -1){
lvItem.mask |= LVIF_IMAGE;
lvItem.iImage = nImageIndex;
}
if(nSubItem == 0)
return InsertItem(&lvItem);
return SetItem(&lvItem);
}
/////////////////////////////////////////////////////////////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5049 2007-04-20 15:59 协议分析器程序\Code\CommonDefine.h
文件 3018 2006-06-15 20:33 协议分析器程序\Code\ctrlext.cpp
文件 5045 2005-11-07 18:14 协议分析器程序\Code\ctrlext.h
文件 8432 1998-03-26 16:44 协议分析器程序\Code\ctrlext.inl
文件 1181 2005-11-08 13:22 协议分析器程序\Code\FilterSettingDlg.cpp
文件 1634 2005-11-08 13:22 协议分析器程序\Code\FilterSettingDlg.h
文件 1194 2005-11-12 12:07 协议分析器程序\Code\HardwareFilterPage.cpp
文件 1343 2005-11-12 12:06 协议分析器程序\Code\HardwareFilterPage.h
文件 2218 2007-01-24 22:07 协议分析器程序\Code\InitializeSettingDlg.cpp
文件 1436 2005-11-06 09:51 协议分析器程序\Code\InitializeSettingDlg.h
文件 3093 2005-11-12 12:07 协议分析器程序\Code\la
文件 1465 2005-11-12 12:06 协议分析器程序\Code\la
文件 1520 2005-11-12 12:07 协议分析器程序\Code\MacAddrFilterPage.cpp
文件 1412 2005-11-12 12:06 协议分析器程序\Code\MacAddrFilterPage.h
文件 4193 2007-02-14 16:04 协议分析器程序\Code\MainFrm.cpp
文件 1638 2005-11-09 16:07 协议分析器程序\Code\MainFrm.h
文件 4608 2007-02-16 10:53 协议分析器程序\Code\MyEditView.cpp
文件 1849 2007-01-24 22:48 协议分析器程序\Code\MyEditView.h
文件 13570 2007-02-16 10:48 协议分析器程序\Code\MyListView.cpp
文件 2321 2007-01-24 22:54 协议分析器程序\Code\MyListView.h
文件 21524 2007-02-20 16:29 协议分析器程序\Code\MyTreeView.cpp
文件 2892 2006-11-04 09:42 协议分析器程序\Code\MyTreeView.h
文件 52096 2007-06-29 12:11 协议分析器程序\Code\ProtocolAnalyzer.aps
文件 5379 2007-06-29 13:24 协议分析器程序\Code\ProtocolAnalyzer.clw
文件 4272 2005-11-05 11:53 协议分析器程序\Code\ProtocolAnalyzer.cpp
文件 6288 2007-06-27 19:29 协议分析器程序\Code\ProtocolAnalyzer.dsp
文件 557 2005-11-02 19:38 协议分析器程序\Code\ProtocolAnalyzer.dsw
文件 1466 2006-11-04 20:06 协议分析器程序\Code\ProtocolAnalyzer.h
文件 648192 2010-05-05 21:29 协议分析器程序\Code\ProtocolAnalyzer.ncb
文件 103424 2010-05-05 21:29 协议分析器程序\Code\ProtocolAnalyzer.opt
............此处省略16个文件信息
- 上一篇:TS 码流解析C实现
- 下一篇:数据结构与算法 C语言描述课后习题答案
评论
共有 条评论