- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC数据链路层通信
VC 数据链路层通信
编程语言:Visual C++
语言版本:Visual C++ 6.0至 Visual Studio.NET 2008
实施参考:略
任务目标:建立一个VC程序,实施数据链路层通信。
实施提示:winpcap通信程序包
任务要求:
编写一个VC程序,完成以下功能:
此程序可以显示本主机网卡列表,以供选择。
选定指定网卡列表后,开始对流经此网卡的数据帧进行捕捉。并判断捕捉到的数据帧中携带的上层协议的类型、数据长度等信息。
如果上层协议为IP,进一步判定出目标IP地址、源IP地址、此IP包之上又是什么协议等信息。
如果IP之上为TCP,进一步判定出目标端口号、源端口号、发序号、收序号、窗口大小、码位等信息。
如果IP之上为UDP,进一步判定出目标端口号、源端口号。
选定指定网卡列表后,开始对流经此网卡的数据帧进行捕捉。并判断捕捉到的数据帧中携带的上层协议的类型、数据长度等信息。
此任务是在Visual Studio.NET 2008环境下进行编程实现的,由于从VC 6.0换到了VC 9.0有些地方不太一样。
首先,必须安装Winpcap驱动,到官方网站上下载相关的文件,新建项目,建立一个MFC对话框程序,如下图
选择建立对话框程序,然后设计好界面,添加了一个菜单,两个列表控件,按键响应功能都在菜单栏中的按钮实现。菜单很简单,如下图
主要有IDC_GETMAC,IDM_Stop两个功能,在PRJ1Dlg.h中主要就是定义了一个ListData的结构体,定义了一些变量,声明了一些消息响应函数,程序中使用了线程函数,临界区等,具体如下
afx_msg void OnBnClickedGetmac();
afx_msg LRESULT OnUpdateList(WPARAM wParam, LPARAM lParam);
CListCtrl m_mylist;
afx_msg void OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult);
CMenu m_Menu;
CWinThread *hCapThread;
CListCtrl m_mylist1;
afx_msg void OnBnClickedStop();
afx_msg void OnStop();
static UINT CapThread(LPVOID lpParameter);
HANDLE eThreadStart;
CRITICAL_SECTION csThreadStop;
bool bThreadStop;
void DecodeChar(char *data,DWORD len);
在PRJ1Dlg.cpp中主要添加了一些头文件,具体一些函数的实现过程,主要添加了一个列表框的更新函数,具体如下
#include stdafx.h
#include PRJ1.h
#include PRJ1Dlg.h
#include pcap.h
#include remote-ext.h
.....
CPRJ1Dlg::CPRJ1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CPRJ1Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);
}
void CPRJ1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_mylist);
DDX_Control(pDX, IDC_LIST2, m_mylist1);
}
BEGIN_MESSAGE_MAP(CPRJ1Dlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_GETMAC, CPRJ1Dlg::OnBnClickedGetmac)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, CPRJ1Dlg::OnNMDblclkList1)
ON_COMMAND(IDM_Stop, CPRJ1Dlg::OnStop)
ON_MESSAGE(WM_UPDATE_LIST, OnUpdateList)
END_MESSAGE_MAP()
// CPRJ1Dlg 消息处理程序
BOOL CPRJ1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应
您可能关注的文档
最近下载
- ××公司第二届掼蛋比赛活动方案.doc VIP
- 《重症医学》教学大纲要点.doc VIP
- 人教版 (2024) 七年级上册Starter Unit 3 welcome 课件+音频(共26张PPT).pptx VIP
- 锥套零件的机械加工工艺规程制订及锥套工序专用夹具设计.doc VIP
- 2024年全国职业院校技能大赛高职组(建筑装饰数字化施工赛项)备赛试题库(含答案).docx VIP
- 06216中外建筑史2007年01月试卷.doc VIP
- “尚德守法共治共享食品安全”主题班会.ppt VIP
- 高中数学课件:3《2-2-1直线的点斜式方程》0.pdf VIP
- 智能停车场系统中英文对照外文翻译文献.docx
- 建筑工程培训PPT课件范文.pptx VIP
原创力文档


文档评论(0)