- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1第七章基本网络开发技术
基本网络开发技术2网络应用开发的基础知识C/S编程模式和套接字B/S编程模式及相关技术4习题
3网络应用开发的基础知识7.1网络应用开发的基础知识服务器和客户的概念标示网络应用—网络应用的定位地址两类不同的编程模式
服务器和客户的概念4一般地,把那些提供网络服务的应用程序称为服务器程序(也可简称为服务器),接受网络服务的应用程序称为客户程序(也可简称为客户),它们之间的通信交换称为客户/服务器交互模式(Client-serverParadigmofInteraction),简称C/S模式,或C/S结构。通常地,这个术语指一个被动地等待通信的、能够提供某种网络服务的程序,而不是运行它的计算机。然而,当一台计算机被用来运行一个或几个服务器程序时,这台计算机本身有时也被称作服务器。准确地说,服务器(Server)这个术语来指那些运行的程序而不是计算机。
标示网络应用—网络应用的定位地址应用的网络定位地址=计算机的IP地址+应用对应的TCP/UDP端口号
标示网络应用—网络应用的定位地址6
常见应用服务的端口服务内容应用协议端口类别端口号Web浏览HTTPTCP80发送邮件SMTPTCP25接收邮件POP3TCP110文件传输FTPTCP20,21
两类不同的编程模式7C/S模式1绝大部分的网络应用程序从根本上而言都是C/S模式.2C/S模式下,一个应用通常包含了两部分程序:服务器程序和客户程序,它们需要分别安装、设置。对于普通的计算机用户而言,为了获取网络服务就必须安装和设置特定的客户程序,未免要求过高。3B/S模式4客户机统一,浏览器(Browser)成为通用的客户端,网络开发只需要开发服务器端,用户计算机上也不需要为每一个网络应用各安装、设置一个客户端软件,大大简化了网络应用的开发和部署。这种更为便利的开发方式逐步流行,称之为浏览器/服务器交互模式(Browser-serverParadigmofInteraction),简称B/S模式,。5
C/S编程模式和套接字8C/S编程模接字接口实现套接字API的过程套接字API的应用示例
C/S编程模式9对于一个服务器程序而言,在同一时刻可能有多个客户来请求服务,这时有两种方案:1方案1:很自然可以想到,下一个客户获得服务必须等待前一个客户服务结束,以文件传输服务为例,如果用户请求的文件很小,服务器在用户不能觉察的时间内就可以完成服务,方案1可以很好工作。但如果用户请求的文件很大,大到服务器需要几分钟、几十分钟甚至更长的时间才能完成服务,对排队等候的用户而言可能就无法忍受了。2方案2:显然是更理想的方式,这时因为有多个客户,需要多个(同样种)服务器提供服务,也就是在运行服务器的计算机上必须同时运行多个服务器应用,这就是并发。并发需要操作系统的支持,今天的操作系统都能满足。再拿文件服务来举例,虽然只有一个文件服务的服务器应用程序,但同一时刻计算机把它运行了多次,每一个运行着的服务器为一个客户提供客户需要的文件服务。一个运行着的服务器可以称为服务器的一个控制线程。3动态创建:也就是服务器在每个请求到来时创建一个新的控制线程来提供服务,它与已有的控制线程并发工作。4
C/S编程模式10logo一个服务器应用程序由两部分组成:一部分负责接收请求和生成新控制线程,另一部分包含处理单个请求完成服务的代码。在服务器程序设计时,必须考虑到并发的情况,并通过动态创建来解决这个问题。
C/S编程模式11服务器同时又多个控制线程工作,客户如何找到属于自己的线程并与它交互呢?拿TCP来说,客户的请求中包含了:目的IP,目的TCP端口号,源IP,源TCP端口号,目的IP帮助客户找到正确的提供服务的计算机,目的TCP端口号为客户在目的计算机上的不同类型服务器中找到正确的服务器程序,而源IP和源TCP端口号则成为为这个客户启动的控制线程的标识,服务器通过它们使正确的控制线程与正确的客户交互。
套接字接口12套接字是从英文单词socket翻译而来,它是网络通信的基本构件。01可以把套接字想象成连接应用和底层网络实现的“门”,发送信息的一方把信息送出“门”,底层的网络实现保证信息正确无误地到达接收发的“门”口供接收.02套接字是网络传输资源的描述符(指针)。03套接字最早是U.C.Berkeley大学BSDUNIX系统中的一部分04
套接字接口13以WindowsSockets为例来看看应用程序与socket之间的关系,如下图:
实现套接字API的过程14Socket过程1Close过程2Bind过程3Listen过程4Accept过程5Connect过程6Send、Sendto与Sendmsg过程7Recv、Recvf
文档评论(0)