学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算法的程序员不妨从基础入手,这都是中国式教育惹的祸啊!(此处省略一万字......)
原文地址:Building a Java chart server[1]
项目源码:Socket_Chat
目录
在本篇教程中,你会创建一个简单、集中管理,面向连接的Java服务端。在做此事的过程中,你会学习到一些基本的框架知识,使用经过实践验证过的技术,用于创建类似的服务端,这样你的服务端会在多种状况下都会表现良好。我们也会检查该框架的缺陷,继续探索相关的事。
—————————————————————————————————————————————————————————————————————————
什么是面向连接的服务端?—————————————————————————————————————————————————————————————————————————
从头创建的原因?
创建这个原始服务端过程中,我们会使用每个实现Java的基本包。这就允许我们在Java语言中,探索服务端编程的每个在最底层。
当然有很多关注这些网络细节可用的系统。在许多系统中,最好的实际解决方案是使用一个已有的框架,由于它经常提供有用的功能,例如可容错性,负载均衡和可通话行。
尽管如此,理解框架如何工作的关键在于最底层(原理)。没有一个现存的解决方案完美解决所有问题,现存的解决方案经常会有小瑕疵,而你必须和它相伴。用批判性的眼光,权衡各种技术的本质的素质,选择正确的预包装方案。
—————————————————————————————————————————————————————————————————————————
为什么是“framework”?“framework”这个词在面向对象社区里有一个技术性的定义 -- 一种可重用的设计架构。
这个传统的代码复用不同,写一些代码为了一个目的被另一个目的重用(或者没有特殊的意图)。更准确的说,一个框架是可重用,可以实现在特殊程序中的首要结构。
一种在framework和传统的代码复用之间的想法是,传统的重用讲述了在你的特殊架构中插入预先存在的组件,而一个framework则说明了在预先存在的架构中插入特殊的组件。
我们在本篇教程中的代码不是技术架构,因为它还不足以你简单的重用在其他别的项目中。构建上述的架构脱离了本教程的目的,你需要深入探索服务端编程基础技术。
然而,在设计层面上,它是一个架构,因为该框架的代码会被一次又一次的使用。
—————————————————————————————————————————————————————————————————————————
我们的框架本篇教程使用的架构有7个功能点。只有你完成本教程,你才会熟悉这7个功能点,当你创建你自己的面向连接的服务端时,你就可以重新使用它们。
7个功能点列表:
[1]. Building a Java chart server
[2]. Java sockets 101以及中文系列 JAVA套接字(Socket)101
[3]. Java socket通信基本原理介绍