ImageVerifierCode 换一换
格式:DOCX , 页数:64 ,大小:1.40MB ,
资源ID:22932107      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22932107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(windows 网络程序设计教案Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

windows 网络程序设计教案Word下载.docx

1、【教学内容】:理论课(2课时):Internet介绍,TCP/IP协议概述(前半部分),SOCKET简介(课件参见 “TCP/IP协议概述.ppt”)上机课(4课时):上机课练习题目:“基于Winsock方式的网络聊天室”练习的主要目的:理解并掌握基于TCP/IP的Winsock方式网络编程流程和具体方法。练习方式: 首先编译提供的“基于Winsock方式的网络聊天室”程序。执行该程序。第2步,每2或3个人一组,熟悉程序操作,使用、并体会一下。第3步,分析该程序的结构,比如,程序有那些类,使用的什么基本技巧。等等,在了解程序结构的基础上,进行相应的修改。具体修改的内容是:在聊天室显示窗口中,显

2、示出各个参与聊天者的IP地址。要求掌握并理解的有关内容:1 C/S 结构(Client/Server,“客户端/服务器”结构)的理解。2 初始化Socket的语句: WSADATA wsaData; WORD version = MAKEWORD(2, 0); int ret = WSAStartup(version, &wsaData); if(ret != 0) TRACE(Initilize Error!n); /初始化失败 AfxMessageBox(Failed in initial socket 3 在服务器端建立监听的语句: if(m_hSocket != NULL) /如果已经

3、创建了套接字先关闭原来的 closesocket(m_hSocket); m_hSocket = NULL; if(m_hSocket = NULL) /创建新的套接字,这里是创建的流类型的套接字 m_hSocket = socket(AF_INET, SOCK_STREAM,0); ASSERT(m_hSocket != NULL); ServerInit(); m_addr.sin_family = AF_INET; m_addr.sin_addr.S_un.S_addr = INADDR_ANY; m_addr.sin_port = htons(m_uPort); int ret = 0

4、; int error = 0; /绑定一个套接字到本机的地址 ret = bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr); if(ret = SOCKET_ERROR) /绑定错误Binding Error return FALSE; /开始一个侦听过程,等待客户的连接 ret = listen(m_hSocket, 5); /这里的第二个参数表示最多支持的客户连接数 /listen失败Listen Error4 客户端的连接(connect)语句: ret = connect(m_hSocket, (LPSOCKADDR)&5 链表类

5、的应用: Clist6 如何建立基于消息机制的异步Socket操作: if(WSAAsyncSelect(m_hSocket,m_hWnd,CLI_MESSAGE,FD_READ|FD_WRITE|FD_CL OSE|FD_CONNECT)0)Error in select7 如何将异步Socket消息机制与程序结合在一起: 消息定义:#define SER_MESSAGE WM_USER + 100#define CLI_MESSAGE WM_USER + 101 消息映射:ON_MESSAGE(SER_MESSAGE,OnServerMessage)ON_MESSAGE(CLI_MESSA

6、GE,OnClientMessage) 消息函数:OnClientMessage(WPARAM wParam, LPARAM lParam)OnServerMessage(WPARAM wParam, LPARAM lParam)【课堂小结】: 总结一下授课的重点,提请学生们注意所学习的重点和难点。【作业布置】: 完成课堂上没有结束的程序。【教学后记】:二基于CSocket方式的网络聊天室 Windows平台的CSocket编程方法 体会CSocket与异步方式实现网络通讯程序的不同 使用VC+编写基于不同实现方法的网络通讯程序重点是使用VC+编写基本的CSocket通讯程序;CSocket的

7、理解和使用。SOCKET详解,TCP/IP协议概述(后半部分)(课件参见“SOCKET.ppt” “TCPIP协议概述.ppt”)“基于CSocket方式的网络聊天室”理解并掌握基于TCP/IP的CSocket方式网络编程流程和具体方法。 首先编译提供的“基于CSocket方式的网络聊天室”程序。熟悉程序操作,使用、并体会一下与Winsock界面有什么不同(IP地址显示出来了)。然后,分析该程序的结构,比如,程序有那些类,使用的什么基本技巧。等等(由教师详细分析),在了解程序结构的基础上,由学生自己建立一个新的工程,并对照教师提供的源代码,重写该聊天室程序。如果有时间,在聊天室显示窗口中,显示

8、出各个参与聊天者的名字。8 理解CSocket。9 初始化的语句: if(AfxSocketInit(NULL)=0)CSocket Inital Error10 在服务器端建立监听的语句:11 客户端的连接(connect)语句:12 链表类的应用: Ptrlist13 如何建立基于Archive的Socket操作:14 如何将Archive机制与CSocketFile结合在一起:15 参见课件幻灯片VC+代码中的一些常用概念.ppt第16、17页CCocket工作原理。三基于控制台方式的“点对点”简单文件传送重点是了解阻塞方式的SOCKET编程方法;阻塞方式的SOCKET的理解和使用,以及

9、流方式的文件打开,读取,求文件大小(长度)等技巧。IP协议详解(课件参“IP详解.ppt”)“一:基于控制台方式的简单文件传送”理解并掌握阻塞方式的SOCKET简单的文件传送编程流程和方法。 首先编译教师提供的“基于控制台方式的简单文件传送”程序。熟悉程序操作,使用、并体会程序的操作。然后,由教师详细分析程序,在了解程序结构的基础上,由学生自己建立一个新的工程,并对照教师提供的源代码,重写该程序的代码。如果有兴趣,在必要的位置,增加提示信息,如,传输进度等。一:基于控制台方式的简单文件传送1 回顾基于控制台方式的Window应用程序开发,并且使用VC+环境创建这类应用。main( int ar

10、gc, char *argv , char *envp ) 语句 命令行参数的含义(注意:在VC+环境下,编写 “非窗口”的程序,也是经常的。)2 了解阻塞方式的SOCKET编程方法3 了解流方式的文件打开,读取,求文件大小(长度)等技巧4 本例程的不足之处:* 之所以称做“简单文件传送”,那么大文件(文件大小超过65535)则无法传送!(为什么?* 一次只能为一个客户传送文件(为什么?另外,请同学们思考:* 该文件传送程序,大文件(大小超过65535)则无法传送! * 一次只能为一个客户传送文件(为什么?四基于Windows窗口方式的“点对点”文件传送 Windows平台的异步消息方式的编程

11、方法 体会异步消息方式的的优势重点是了解基于异步消息方式的SOCKET编程方法;异步消息方式的SOCKET的理解和使用,以及Windows标准方式文件的打开,读取,求文件大小(长度)等技巧。“基于Windows窗口方式的点对点文件传送”理解并掌握基于Windows窗口方式的文件传送编程流程和方法。由教师详细分析程序,在了解程序结构的基础上,学生将程序改进为可以双向传送文件。(教师提供的代码是从服务器端单向传送文件的)如果有兴趣,在必要的位置,增加提示信息,如,传输进度等。一,关键的仍然是如何建立基于消息机制的异步Socket操作: if(WSAAsyncSelect(m_hSocket,m_h

12、Wnd,CLI_MESSAGE,FD_READ|FD_WRITE|FD_CLOSE|FD_CONNECT) 二,至于如何将文件发送到对方,教师的方法仅供参考 三,参考下面界面:* 该文件传送程序,与前面介绍的简单文件传送的不同之处 * 该程序的不足之处补充程序,使之完善(增加CLIENT端传送文件的功能)五实现PING功能 学会如何使用VC+编写网络协议的方法 体会网络协议编程的方式 理解VC+编写的网络通讯协议软件的具体方法重点是了解如何灵活运用ICMP协议去编制PING应用程序。实现ICMP协议的技巧。ICMP协议介绍(课件参“ICMP详解.ppt”)“实现PING功能”在编写Ping程序

13、的过程中,学会编写网络协议的技巧,同时理解ICMP协议,重点是ICMP中的Echo和Echo Reply。 教师详细分析程序,然后由同学们单独完成。 按照下面步骤展开。要求掌握并理解的有关内容以及上机练习一些说明:16 新建项目,使用AppWizard创建一个基于对话框形式的应用程序,首先完成下面工作: 主机/IP地址输入的编辑框 按钮,用来开始PING的功能 一个CHECKBOX 控件用来记录PING的路由 一个用来显示PING结果的编辑框如下所示: 这些具体的有关VC+基础编程不细说了。17 实现一个封装ICMP-PING功能的类:class CPing 18 理解并掌握对所谓协议的封装是

14、如何实现的:(重要!使用结构:typedef struct _iphdr unsigned int h_len:4; / Length of the header 注:此处需要注意! unsigned int version: / Version of IP unsigned char tos; / Type of service unsigned short total_len; / Total length of the packet unsigned short ident; / Unique identifier unsigned short frag_and_flags; / Fla

15、gs unsigned char ttl; / Time to live unsigned char proto; / Protocol (TCP, UDP etc) unsigned short checksum; / IP checksum unsigned int sourceIP; unsigned int destIP; IpHeader;typedef struct _icmphdr BYTE i_type; BYTE i_code; / Type sub code USHORT i_cksum; USHORT i_id; USHORT i_seq; / This is not t

16、he standard header, but we reserve space for time ULONG timestamp; IcmpHeader;/ IP option header - use with socket option IP_OPTIONStypedef struct _ipoptionhdr unsigned char code; / Option type unsigned char len; / Length of option hdr unsigned char ptr; / Offset into options unsigned long addr9; /

17、List of IP addrs IpOptionHeader;19 Socket的启动:还记得吗?WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) !Sorry, you cannot load socket dll! return ; 20 创建Socket的方法(注意与普通的不同“SOCK_RAW”) m_hSocket = WSASocket (AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, WSA_FLAG_OVERLAPPED); 对比: m_hSocket = socket(AF

18、_INET, SOCK_STREAM,0);SOCK_RAW(原始套接字)保存了数据包中的完整IP头,而SOCK_DGRAM、SOCK_STREAM两种套接字只能收到用户数据。因此可以通过原始套接字对数据进行分析。将原始代码,复制到自己建立的工程中。* 如何实现更高级的ICMP协议功能。 有兴趣的同学,可以编写实现更多功能的ICMP协议。六获取本机网络信息的若干程序(一) 学会如何使用VC+编写程序获取本机网络信息 通过自己编写的代码,体会如何获取本机网络信息的方法 了解VC+编写的网络通讯软件的某些基础函数重点是了解如何运用VC+提供的若干与获取本机网络信息相关的函数。理解本地网络设置以及相

19、关VC+设计技巧LAN原理(第一部分)(课件参“LAN原理.ppt”)题目:“书签形式的获取本地计算机网络资源程序”掌握获取本机网络信息的编程方法。由教师详细分析程序,在了解程序结构的基础上,由学生自己建立一个新的工程,并对照教师提供的源代码,重写部分程序的代码。学会从注册表中获取网络资源,及其编程技巧。练习标签页的编程。 教师详细分析程序,然后由同学们单独完成一项新的查询功能。 具体的,由学生在原来基础上添加一个获取DNS的标签页。 有关VC+基础编程 标签页的应用及其实现方法。 理解并掌握如何从注册表中获取资源(重要!学会两种操作注册表的函数。值得注意的是:注册表-注册表结构,不同的操作系

20、统也许不同!(Win2003, Win NT)七获取本机网络信息的若干程序(二)LAN原理(第二部分),TCP协议详解(第一部分)(课件参“LAN原理.ppt”,“TCP协议.ppt”)“书签形式的获取本地计算机网络资源程序(2)”掌握获取本地网络信息的编程方法。学会几种获取网络资源的Socket函数:getservbyname()、getservbyport(),WNetEnumResource()。及其编程复习标签页的编程。了解如何阅读MSDN的帮助(重要! 教师分析程序,然后由同学们单独完成几项新的查询功能。 具体的,首先,由学生在原来基础上添加使用getservbyport()函数显示

21、协议的的功能。1、 有关VC+基础编程复习标签页的应用及其实现方法。2、理解并掌握几种如何获取资源的Socket函数(重要!学会getservbyname()、getservbyport(),WNetEnumResource()函数。3、参考资料(有MSDN的同学可以直接阅读):结构:SERVENTstruct servent char FAR * s_name; char FAR * FAR * s_aliases; short s_port; char FAR * s_proto; The members of this structure are:ElementUsages_nameOf

22、ficial name of the service.s_aliasesA NULL-terminated array of alternate names.s_portThe port number at which the service can be contacted. Port numbers are returned in network byte order.s_protoThe name of the protocol to use when contacting the service.函数:(一)getservbyname()The Windows Sockets getservbyname function retrieves service information corresponding to a service name and

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1