码迷,mamicode.com
首页 > 编程语言 > 详细

[Java聊天室服务器]实战之一 开篇介绍

时间:2014-05-09 01:14:56      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:sockets   多线程   架构   服务器   聊天   

前言

学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境bubuko.com,布布扣:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算法的程序员不妨从基础入手,这都是中国式教育惹的祸啊!(此处省略一万字......)


原文地址:Building a Java chart server[1]

项目源码:Socket_Chat

目录

      • [Java聊天室服务器]实战之四 线程类(未完成)
      • [Java聊天室服务器]实战之五 读写循环(服务端)(未完成)
      • [Java聊天室服务器]实战之六 去除死链接(未完成)
      • [Java聊天室服务器]实战之七 客户端类(未完成)
      • [Java聊天室服务器]实战之七 读写循环(客户端)(未完成)

正文

在本篇教程中,我们会创建一个包含服务端和客户端简单的聊天室系统。本篇适合有一些网络编程经验或者没有的初学者(大牛请掠过bubuko.com,布布扣)。即使你有一些关于网络方面的编程经验或者没有,我们仍会讲述网络、多线程等知识的详细细节,以便大家能充分理解本教程。
—————————————————————————————————————————————————————————————————————————

服务器端做什么事情?

在本篇教程中,你会创建一个简单、集中管理,面向连接的Java服务端。在做此事的过程中,你会学习到一些基本的框架知识,使用经过实践验证过的技术,用于创建类似的服务端,这样你的服务端会在多种状况下都会表现良好。我们也会检查该框架的缺陷,继续探索相关的事。

—————————————————————————————————————————————————————————————————————————

什么是面向连接的服务端?

一般来说,任何服务端的工作时提供一种集中的服务。然而,有很多不同的服务方式和很多不同通信结构方式。(我们该怎么对待呢?)

聊天室大体上描述了面向连接的服务,因为一个用户建立并保持一个连接,在会话期间发送接收信息。

这是和Web不同的,Web的协议(至少理论上)是基于事务的 -- 浏览器请求一个页面,服务器返回给它;然后连接关闭。(事实上,连接保持打开和可重用的状态,但是这是个更倾向于速度优化而不是结构的比方)

我们会创建一个简约,面向连接的服务端。学习基本的框架可以帮助你在将创建出更好的面向连接的服务端。

—————————————————————————————————————————————————————————————————————————

从头创建的原因?


创建这个原始服务端过程中,我们会使用每个实现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通信基本原理介绍

[Java聊天室服务器]实战之一 开篇介绍,布布扣,bubuko.com

[Java聊天室服务器]实战之一 开篇介绍

标签:sockets   多线程   架构   服务器   聊天   

原文地址:http://blog.csdn.net/jptiancai/article/details/25170983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!