目录1前言.........................................................................................................................................31.1课程设计的目的..............................................................................................................31.2JAVA简介........................................................................................................................32需求分析.................................................................................................................................62.1功能需求分析...................................................................................................................62.2数据需求分析...................................................................................................................62.3性能需求分析...................................................................................................................72.4运行需求分析...................................................................................................................73相关原理分析.........................................................................................................................83.1TCP/IP参考模型..............................................................................................................83.2TCP的建立.......................................................................................................................93.3TCP传输原理.................................................................................................................103.4套接字的客户端............................................................................................................113.5C/S模式.........................................................................................................................114总体设计..............................................................................................................................135详细设计..............................................................................................................................145.1服务端设计.....................................................................................................................145.2客户端的设计.................................................................................................................155.3协议的设计.....................................................................................................................165.4多线程.............................................................................................................................165.5线程池.............................................................................................................................175.6非堵塞I/O......................................................................................................................176调试......................................................................................................................................187结束语.....................................................................................................错误!未定义书签。参考文献............................................................................................................................23附录:设计程序清单.................................................................................................................24基于TCP/IP的网络聊天程序服务端设计摘要本课程设计的目标是基于Eclipse技术实现一个点对点通信程序,其工作机制模仿即时通信软件的基本功能,包括登陆,上线,传递信息等等。采用TCP/IP原理,分别为客户端和服务器端完成基本数据配置,实现网络聊天功能。在设计过程中,主要采用Eclipse编程环境,使用Java语言进行程序的编写,程序通过调试运行并且经过完善后,初步实现了设计的目标,能很好地在局域网环境实现即时聊天。关键字Java语言;Eclipse;TCP/IP;套接字;C/S工作模式1前言21世纪是网络的世界,现在网络发展的不可估量了,它可以包括我们生活中的方方面面,小到上网购物、查找资料,大到网上理财、网上会议,可以说网络把我们的世界变小了,即使在天涯海角,有网络的地方我们就可以随时联系。最简单的形式就是进行网络聊天了,这个很简单的聊天工具,可以随时拉近你我的距离[1]。本设计将基于TCP/IP协议和局域网环境,使用Java和Eclipse实现一个即时聊天程序。1.1课程设计的目的本课程设计主要采用Eclipse编程环境,使用Java语言编写程序,通过调试运行并且经过完善后,初步实现了设计的目标,能很好地在局域网环境实现即时聊天。1.2Java简介Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.5,最近版本为Java1.7。Java是一种简单的,面向对象的,分布式的,健壮的,安全的,体系结构中立的,可移植的,解释型的,高性能的,多线程的,动态的语言。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供有关技术和丰富的类库[5]。1.3Eclipse简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePl