网络课程设计指导书.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机网络》课程设计指导书 《计算机网络》课程教学小组 2007.3 第一部分 预备知识-网络编程与WinSock编程模型 网络通信与套接字 1.1 网络通信 网络通信程序无论是在Internet还是在局域网中,都采用同样的原则,通过类似的功能来实现网络通信。首先,一台计算机中的某个程序的连接请求,这个应用程序正在“监听”这个连接请求;同时,另外一个应用程序试图与第1个程序连接。这种打开连接的做法与打电话类似,应用程序要建立连接也必须知道对方的网络地址。两个应用程序间建立连接之后就可彼此互传信息。当完成信息交换后,必须关闭连接。不管拿哪一方关闭连接,另外一方可以检测到这个情况,并关闭该方的通信。所以网络应用程序应包括两部分:一部分是服务器端的应用程序,主要用于接收客户端的连接请求、接收客户端的信息、处理客户端的请求并向客户端发送计算结果和应答信息;另外一部分是客户端的应用程序,主要用于请求连接到服务器,向服务器发送计算请求,处理服务器发挥的计算结果和其他的信息。 因而,服务器应用程序可同时接收多个客户端的连接请求和其他处理请求,而客户端也可同时连接到几个服务器上。一个典型的网络应用程序的结构如图1所示。 图1 1.2 套接字和端口 套接字(Socket)是一种网络编程接口,是对通信端点的一种抽象,它提供了发送和接收远程数据的机制。通常在一台物理服务器上可运行多个服务器程序,每个服务器程序为用户提供一种特定的服务。例如可在同一台计算机中运行FTP服务器、Web服务器等。那么拥护如何使用同一台服务器上不同的服务?实际上,每个服务器程序会使用一个特定的套接字端口监听客户机的连接请求,客户机只有连接到指定的端口才能得到相应的服务。 在一台计算机中,特定的端口只能由一个应用程序监听,因此同一台计算机上的不同的网络应用程序必须指定不同的监听端口。在网络应用程序中,可使用数据报套接字(Datagram Socket)和流式套接字(Stream Socket)。数据报套接字和流式套接字可使用同一个端口号进行监听,分别称为TCP端口和UDP端口。 应用程序可使用1~65535之间的任意一个端口号,并将其分配给套接字。通常这些套接字分为以下几个范围: (1)不使用端口0。如果用户向套接字分类的端口号是0,则程序会分配一个1024~5000 之间的没有使用的端口。 (2)端口1~255,保留给特定的服务,如FTP,Telnet,FINGER,Web等。 (3)端口256~1023,保留给别的一般服务。 (4)端口1024~4999,可被任意客户机端口使用,用户的客户机套接字可使用的端口应在此范围中。 (5)端口5000~65535,提供给用户定义的服务器端口使用。 MFC WinSock类和WinSock编程模型 2.1 WinSocK和MFC 由于套接广泛应用于网络编程,因此需要一个规范。最早的套接字规范由伯克利大学开发,应用于UNIX操作系统。Microsoft 以Berkeley Sockets为蓝本,定义了一套Windows 操作系统下的网络编程接口,称为Windows Sockets规范。 Winsock不仅包含Berkeley Sockets的库函数,还包含一组针对Windows API扩展库函数,使得程序员可充分利用Windows的消息驱动机制编程。在直接采用WinSock API编写网络应用程序时,程序员不但要记忆很多WinSock API 函数的调用格式,还要了解设计WinSock 网络编程的算法。对于编写Windows应用程序还涉及复杂的消息驱动机制,设计事件处理函数来处理套接字发送、接收等事件。 为了简化WinSock网络编程,使用户专注应用程序的设计,MFC提供了两个用于WinSock编程的类:CAsyncSocket和CSocket。这两个类都提供事件处理函数,通过对事件处理函数的重载,用户可在应用程序中对套接字发送、接收数据等事件进行处理。 1. CASyncSocket类 CASyncSocket类是从CObiect类派生出来的。该类在较低的程度对WinSock API进行了封装。CAsyncSocket类中的成员函数基本上是与WinSock中的API对应的,该类要求程序员对网络通信有比较深入的了解,与直接使合WinSock API一样,使用CAsyncSocket类编程时也必须考虑字节顺序转换、阻塞操作问题。 2.CSocket类 CSocket类从CAsyncsocket类派生来的,它对WinSocket API进行更高级的封装,为用户提供更加容易的网络编程接口。用户使用CSocket类编写网络应用程序时,不需要对网络编程有更多的了解。而且,CSocket类与CSocketFile类和CArchive类

文档评论(0)

38号店铺 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档