- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络服务器应用程序框架
网络服务器应用程序框架
代码重用与应用程序框架
在不同软件之间,或多或少都会存在一些共同点,都会需要一些共同的功能。如果每次
编写软件都完全从零开始的话,这将会是一种非常没有必要的浪费。因此,在可能的情况下,
我们提倡尽量对已有的代码进行重用。
代码重用可以带来很大益处。首先,重用已有代码,可以减少编写新代码的工作量,提
高工作效率。其次,被重用的代码都是经过一定时间和实践检验的,错误、故障和漏洞都会
比全新编写的代码少。再次,当修正了重用代码中的错误后,使用了该重用代码的其它代码
中的相应漏洞也会得到同样地修正,可以极大地提高程序的可靠性。
重用代码,并不等于“复制/粘贴”已有代码后再进行修改以适应新的需要。固然,这
种做法也能够“重复使用”以前写下的代码,也能在一定程度上提高一时的 “工作效率”,
但从长远和全局上看来,这种做法是相当有害的。如果使用“复制/粘贴”代码的方式“重
用”了大量代码,当在某个版本的代码中发现了错误之后,将不得不修改所有使用了这些代
码的地方的相应程序,不但费时费力,而且非常容易出错。简而言之,就是使用“复制/粘
贴”代码法来进行代码重用完全不具备可维护性。
因此,一段良好设计的可重用代码,应该具备一定的通用性,应该能做到不作任何修改
就能在许多不同的环境下使用。因此,编写可重用代码需要考虑的问题比编写不可重用代码
要多得多,编写起来也比不可重用的代码困难。总之,编写可重用的代码是要付出一定代价
的。据专家统计,编写可重用代码的工作量大约是为一个单独的应用编写特定代码工作量的
3 到9 倍。但是,如果一段可重用代码能够应用到多个实际项目中的话,总工作量将会由于
共享了以往的成果而降低。显而易见,代码重用的次数越多,节约工作量的效果就越明显。
因此,为了重用代码而付出的额外代价是值得的。
可重用的代码有两种类型,一种叫部件库(Off-shelf library ),一种叫应用程序框架
(Application Framework )。部件库的特点是,它提供了一些零散的、具有一定功能的部件。
在编写程序的时候,由我们自己搭建整个应用程序的架构,并将这些部件“组装”到我们的
程序之中。程序运行的时候,由我们自己编写的程序来调用现有的部件代码。而应用程序框
架则与之相反,它自己已经具备了一个完整应用程序的结构。在编写程序的时候,改由我们
提供各个部分的具体功能,由它来调用。
由于应用程序框架本身已经是一个完整程序的半成品,因此在它的基础上编写程序,会
比全新创建程序或使用部件库搭建程序都简便很多,而且可以搭建出更加可靠的程序。当然,
使用了框架代码后,程序的流程就必须按照框架的规定进行,不可能随心所欲地编写代码了。
但是,应该明白这是一种福利而不是一种限制。
基于TCP/IP 协议的服务器
随着网络技术的普及,网络程序的数量和种类都越来越多。在目前的应用模式下,服务
器、客户端模式的应用十分广泛。目前现有的服务器程序据说有上千种,而绝大部分服务器
都是基于TCP/IP 协议的。
1
对比基于TCP/IP 协议构建的各种应用层协议,不难发现,虽然各种协议之间差异很大,
但服务模式都是类似的。无论何种服务器,它的工作流程都是,首先由主线程打开一个TCP
端口并监听,当有用户连接服务器时,主线程获取该连接产生的 Socket 对,创建一个服务
线程,由该线程为用户服务。主线程回到监听状态,继续等待下一个用户连接,如下图所示:
1
监听端口
获取连接
读/写数据
创建服务线程
关闭连接
关闭连接
退出
服务线程 退出
文档评论(0)