




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏 州 市 职 业 大 学实习(实训)任务书 名 称: 实用网络程序设计实训 起讫时间: 2012-6-11至 2012-6-15 院 系: 计算机工程系 班级: 10系统集成 指导教师: 于复生 吴建平 系 主 任: 李金祥 一、实习(实训)目的和要求通过实训,进一步掌握网络编程的知识和技能,掌握解决实际问题以及进行一定网络程序设计的能力。实训注重网络程序的细节技术,进一步研究网络编程函数和相关MFC类,并且着重解决编程中可能存在的问题和难点,同时将这些知识应用于实际开发中,利用理论知识指导实践的开发。二、实习(实训)内容1、文件传输的设计2、聊天软件的设计3、广播程序的设计4、本地计算机信息的查询5、局域网信息的查询学生按班级内序号分组,每5位同学一组,每人完成一个项目。三、实习(实训)方式 集中 分散 校内 校外四、实习(实训)具体安排以小组为单位,每个小组5台计算机,计算机之间通过局域网连接。共同完成小组任务,并完成调试。序号教学内容题目学 时 分 配小计讲课实训1文件传输的分析与设计4132聊天软件的分析与设计443广播程序的分析与设计444本地计算机信息的查询445局域网信息的查询446项目整体测试413合 计24222五、实习(实训)报告内容(有指导书的可省略)1、实训地点:信2-5062、实训时间:2012/06/112012/06/153、小组成员:XXXXXXXXXXX4、具体内容:本地计算机信息的查询5、实训总结:苏 州 市 职 业 大 学实习(实训)报告 名称 实用网络程序设计实训 2012年6月11日至 2012年6月15日共一周院 系 计算机工程系 班 级 10系统集成 姓 名 XXXXX 系主任 李金祥 教研室主任 谭方勇 指导教师 于复生 吴建平 1、实训地点:信2-5062、实训时间:2012/06/112012/06/153、小组成员:XXXXXXXXXX4、具体内容:本地计算机信息的查询4.1 设计分析与原理(1)获取主机名和IP地址:获取本地计算机名和IP地址可以通过读注册表获得,也可以使用winsock库提供的相关函数来实现。(2)获取计算机软硬件配置信息:获取本机的操作系统信息和CPU信息需要查询注册表,从注册表中读取所需要的信息,然后显示到界面上。(3)查询本地网卡地址:一个网关对应唯一一个的MAC地址,对一些应用程序来说,获取网卡MAC地址有时是必要的,使用VC提供的NetBIOS网络编程接口可以方便获取网卡MAC地址(4)查询本机子网掩码:函数GetAdaptersInfo()可以获得本地计算机的网络信息,从而获得该计算机的子网掩码,该函数的头文件Iphlpai.h中定义,需要从Iphlpai.lib的支持。VC里面没有这两个,所以要从网络上下载他们。(5)查询本机网关:函数GetAdaptersInfo()可以获得本地计算机的网络信息,从而获得该计算机的网关设置,该函数的头文件Iphlpai.h中定义,需要从Iphlpai.lib的支持。VC里面没有这两个,所以要从网络上下载他们。(6)查询本机DNS:函数GetNetworkParams()可以获得本地计算机的网络参数,从而获得该计算机的DNS设置,该函数的头文件Iphlpai.h中定义,需要从Iphlpai.lib的支持。VC里面没有这两个,所以要从网络上下载他们。4.2 程序流程图图1操作注册表的流程 图2获取MAC地址流程 4.3 程序代码void CMyDlg:OnGetname() /初始化WinSock为2.0版本WSADATA wsaData;int ret;if(ret=WSAStartup(MAKEWORD(2,2),&wsaData)!=0)return;char HostName128;BOOL bRet;bRet = gethostname(HostName,128);if(bRet!=0)MessageBox(获取计算机名错误!,提示);return;CString strMeg = HostName;strMeg = 本机的计算机名是: + strMeg;m_show.InsertString(-1,strMeg);WSACleanup();/ TODO: Add your control notification handler code herevoid CMyDlg:OnGetip() /初始化WinSock为2.0版本WSADATA wsaData;int ret;if(ret=WSAStartup(MAKEWORD(2,2),&wsaData)!=0)return;char HostName128;struct hostent* pHost;gethostname(HostName,128);pHost = gethostbyname(HostName);int i = 0;CString strIP;while(pHost-h_addr_listi!=NULL)strIP = inet_ntoa(*(struct in_addr*)pHost-h_addr_listi);CString str = 本机的IP地址: + strIP;m_show.InsertString(-1,str);i+; WSACleanup();/ TODO: Add your control notification handler code herevoid CMyDlg:OnSoft() CString strPath=SOFTWAREMicrosoftWindowsCurrentVersion;/注册表子键路径CRegKey regkey;/定义注册表类对象LONG lResult;/LONG型变量反应结果char strMes50;CString strShow;DWORD dwSize=50; lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS);/打开注册表键if (lResult!=ERROR_SUCCESS)AfxMessageBox(错误:无法查询有关的注册表信息);return; /获取操作系统安装序列号值memset(strMes,0,50);regkey.QueryValue(strMes,ProductId,&dwSize);strShow = strMes;strShow = 操作系统安装序列号: + strShow;m_show.InsertString (-1, strShow);regkey.Close();/关闭注册表/获取操作系统名称、Windows的版本号和windows的版本名称strPath=SOFTWAREMicrosoftWindows NTCurrentVersion;/注册表子键路径lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS);/打开注册表键if (lResult!=ERROR_SUCCESS)AfxMessageBox(错误:无法查询有关的注册表信息);return;/获取操作系统名称memset(strMes,0,50);regkey.QueryValue(strMes,ProductName,&dwSize);strShow = strMes;strShow = 操作系统名称: + strShow;m_show.AddString(strShow);/获取windows的版本名称memset(strMes,0,50);regkey.QueryValue(strMes,CSDVersion,&dwSize);strShow = strMes;strShow = Windows的版本名称: + strShow;m_show.AddString(strShow);/获取Windows的版本号memset(strMes,0,50);regkey.QueryValue(strMes,CurrentVersion,&dwSize);strShow = strMes;strShow = Windows的版本号: + strShow;m_show.AddString(strShow);regkey.Close();/关闭注册表void CMyDlg:OnHard() CString strPath=HARDWAREDESCRIPTIONSystemCentralProcessor0;/注册表子键路径CRegKey regkey;/定义注册表类对象LONG lResult;/LONG型变量反应结果 lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS);/打开注册表键if (lResult!=ERROR_SUCCESS)AfxMessageBox(错误:无法查询有关的注册表信息);return;char strMes50;DWORD dwSize=50; CString strShow;/获取CPU名称regkey.QueryValue(strMes,ProcessorNameString,&dwSize);strShow = strMes;strShow = CPU名称: + strShow;m_show.AddString(strShow);/获取CPU标识regkey.QueryValue(strMes,Identifier,&dwSize);strShow = strMes;strShow = CPU标识: + strShow;m_show.AddString(strShow);/获取CPU制造商regkey.QueryValue(strMes,VendorIdentifier,&dwSize);strShow = strMes;strShow = CPU制造商: + strShow;m_show.AddString(strShow);/获取CPU主频regkey.QueryValue(dwSize,MHz);strShow.Format(%d,dwSize);strShow = CPU主频: + strShow;m_show.AddString(strShow);regkey.Close();/关闭注册表void CMyDlg:OnGetmac() NCB ncb; /网络控制块 LANA_ENUM lana_enum; /该结构包含网卡数目及其索引 memset(&ncb, 0, sizeof(ncb) ); /NCB结构清零 ncb.ncb_command = NCBENUM; /向网卡发送 NCBENUM 命令,以获取当前计算机的网卡信息, /如有多少个网卡,每张网卡的编号等 ncb.ncb_buffer = (unsigned char *)&lana_enum; ncb.ncb_length = sizeof(lana_enum); UCHAR uRetCode = Netbios(&ncb);int num; /标识网卡个数 MAC_ADDRESS mac_addr5;/假设最多有5个网卡if (uRetCode != 0) return; num = lana_enum.length; /对每一张网卡,以其网卡编号为输入编号,获取其 MAC 地址 for (int i = 0; i IpAddressList.IpMask.String);MessageBox(strSubNetMask);pAdapter=pAdapter-Next;void CMyDlg:OnBnclickedgetgateway() PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAdapter=NULL;DWORD dwRetVal=0;pAdapterInfo=(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO);unsigned long ulOutBufLen=sizeof(IP_ADAPTER_INFO); if(GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)!=ERROR_SUCCESS) GlobalFree(pAdapterInfo); pAdapterInfo=(IP_ADAPTER_INFO*)malloc(ulOutBufLen);/获得本地计算机的网络信息函数if(dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)=NO_ERROR) pAdapter=pAdapterInfo; while(pAdapter) CString strGateway; strGateway.Format(网关:%sn,pAdapter-GatewayList.IpAddress.String); MessageBox(strGateway); pAdapter=pAdapter-Next; else MessageBox(Call to GetAdaptersInfo failed!); return;void CMyDlg:OnBnclickedgetdns() FIXED_INFO*FixedInfo; ULONG ulOutBufLen; DWORD dwRetVal; IP_ADDR_STRING*pIPAddr; FixedInfo=(FIXED_INFO*)GlobalAlloc(GPTR,sizeof(FIXED_INFO); ulOutBufLen=sizeof(FIXED_INFO); /函数GetNetworkParams可以获得本地计算机的网络参数,从而获得计算机的DNS设置 if(ERROR_BUFFER_OVERFLOW=GetNetworkParams(FixedInfo,&ulOutBufLen) GlobalFree(FixedInfo); FixedInfo=(FIXED_INFO*)GlobalAlloc(GPTR,ulOutBufLen); if(dwRetVal=GetNetworkParams(FixedInfo,&ulOutBufLen) printf(Call to GetNetworkPara
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书:债务处理及个人财产分割方案
- 艺术家离婚协议范本:知识产权归属与分割
- 建设工程监理合同延期及追加服务补充协议
- 《夫妻共同债务处理标准离婚协议》
- 第23课 女娲造人 课时练02(含答案)
- 班组每月安全培训内容课件
- 内场客舱工作培训
- 创意口罩绘画课件
- 模似电子技术试题及答案
- dsp技术课程考试题及答案
- 有组织科研对高校拔尖创新人才培养的影响机制研究
- 突发传染病疫情应急
- 小学生红色经典故事100个红色经典故事【6篇】
- 重大活动安全保障措施及预案
- 楼层瓷砖脱落施工方案
- 《节水型高校评价标准》
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 金融机构概况
- 2024-2025学年地质版体育与健康一年级全一册教案
- 成人常见传染病预防方法
- 《干部履历表》(1999版电子版)
评论
0/150
提交评论