java课程设计-聊天程序解析
java聊天软件课课程设计

java聊天软件课课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握Java编程语言的基本语法、面向对象编程思想、常用数据结构和算法,以及JavaFX等图形用户界面开发技术,从而能够独立设计和开发简单的聊天软件。
2.技能目标:学生能够熟练使用Java开发工具和环境,具备查找和解决编程问题的能力,能够独立完成聊天软件的设计、编码、调试和测试工作。
3.情感态度价值观目标:通过本课程的学习,学生能够培养对编程和软件开发的兴趣和热情,认识软件开发对社会和科学的重要性,形成良好的学习态度和合作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java编程基础:Java语言的基本语法、数据类型、运算符、控制结构、数组、字符串等。
2.面向对象编程:类和对象的概念、构造方法、成员变量、继承、多态、接口等。
3.常用数据结构和算法:数组、链表、栈、队列、排序、查找等。
4.JavaFX图形用户界面开发:窗口、控件、布局、事件处理等。
5.聊天软件设计与开发:设计模式、网络编程、多线程、消息传递机制等。
三、教学方法本课程的教学方法包括以下几种:1.讲授法:用于向学生传授基本概念、原理和方法。
2.案例分析法:通过分析典型聊天软件的案例,使学生更好地理解和掌握相关知识。
3.实验法:让学生动手编写代码,实际操作聊天软件的开发过程,培养实际编程能力。
4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高合作和沟通能力。
四、教学资源本课程的教学资源包括以下几种:1.教材:《Java编程基础》、《JavaFX教程》、《Java网络编程》等。
2.参考书:为学生提供丰富的课外阅读材料,加深对课程内容的理解。
3.多媒体资料:教学PPT、视频教程、网络资源等,丰富教学手段,提高学习兴趣。
4.实验设备:计算机、网络设备等,为学生提供实际操作环境,培养实际编程能力。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
java简单聊天程序网络课程设计报告解析

辽宁科技大学装备制造学院计算机网络课程设计报告题目:网络聊天室的设计与实现院系:装备制造学院专业:计算机科学与技术班级:二班姓名:张和鑫学号: 18指导教师:秦维佳设计时间:2013年6月21日—2013年6月28日辽宁科技大学装备制造学院2013年6月计算机网络课程设计报告目录1. 序言 (1)1.1 背景 (1)1.2 相关技术 (1)2. 程序设计与实现 (1)2.1需求分析 (1)2.2 程序结构 (2)3. 测试结果 (16)4. 总结 (19)参考文献.................................................................................................................................. . (20)1.序言1.1 背景在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。
使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。
2.此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。
使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
1.2 相关技术CPU:Pentium 2.8GHz以上内存:256MB以上硬盘空间:80G以上操作系统:Windows XP运行环境:JDK,JCreator2. 程序设计与实现2.1需求分析Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。
JAVA课程设计--简单的网络聊天程序

}
catch (Exception e)
{
//System.exit(-1);
}
}
public void connect()
{
try
{
s = new Socket("127.0.0.1", 8888); //此IP可以修改,如果要可以达到很远的距离聊天不但需要IP地址,
本 科 课 程 设 计
课程设计题目: 简单的网络聊天程序
课程设计报告
1.设计目的:
课程设计题目:简单的网络聊天程序
目的与任务:Байду номын сангаас
目的:熟悉网络编程的知识和技能,掌握Socket编程的方法。
任务:完成网络聊天程序的编制与调试。
要求:
1.分析聊天程序的功能需求。
2.采用自己熟悉的开发环境和语言完成设计任务,如:Java、C++、Visual Basic、SQL server等。
工作安排:
利用网络程序编程来完成这一次课程设计,并且用到多线程和图形界面处理,最后完成课程设计报告。
提交内容:
每位同学提交书面设计报告一份(每人一份)
程序源代码
批语:
成绩:
2014年9月1日
在当今的信息时代,越来越多的聊天工具被应用 ,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程 等特点。使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入 式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。
java课程设计报告(java聊天室)

Java聊天室课程设计一、需求分析1.1开发背景在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。
网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。
网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。
在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。
而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。
目前较为流行的网络编程模型是客户机/服务器(C/S)结构。
即通信双方一方作为服务器等待客户提出请求并予以响应。
客户则在需要服务时向服务器提出申请。
服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。
1.2设计要求本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。
1.3设计目的通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。
能将相关的只是运用到相关的实践中去。
1.4功能实现服务器的主要功能有1)在特定端口上进行侦听,等待客户连接2)用户可以配置服务器的真挺端口3)向已经连接服务器的客户发送系统消息4)统计在线人数5)当停止服务时,断开所有用户的连接客户端的主要功能1)连接到已经开启聊天服务的服务端2)用户可以配置要连接服务器端的ip地址和端口号3)用户可以配置连接后显示的用户名4)当服务器开启时。
javaweb聊天软件课程设计

javaweb聊天软件课程设计一、课程目标知识目标:1. 理解Java Web编程基础,掌握Servlet、JSP等核心技术;2. 学会使用数据库存储聊天信息,掌握JDBC连接数据库的方法;3. 掌握HTML、CSS、JavaScript等前端技术,实现用户界面设计;4. 了解网络通信原理,掌握WebSocket技术实现实时聊天功能。
技能目标:1. 能够独立设计并实现一个基于Java Web的聊天软件;2. 能够运用所学知识解决实际开发中遇到的问题,如数据库操作、页面跳转、表单验证等;3. 能够运用前端技术优化用户界面,提高用户体验;4. 能够使用WebSocket实现实时通信,提高聊天软件的互动性。
情感态度价值观目标:1. 培养学生的编程兴趣,提高学习积极性;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 培养学生的创新精神,敢于尝试新技术和新方法;4. 培养学生遵守网络道德规范,尊重他人隐私,合理使用网络资源。
课程性质:本课程为实践性较强的课程,要求学生在掌握基本理论知识的基础上,动手实践,培养实际开发能力。
学生特点:学生具备一定的Java基础,了解Web编程基本概念,对实际项目开发感兴趣。
教学要求:结合课程性质和学生特点,注重理论与实践相结合,以项目为导向,引导学生自主探究,培养实际开发能力。
在教学过程中,关注学生的学习进度和需求,及时调整教学方法和内容,确保课程目标的实现。
将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. Java Web基础回顾:重点复习Servlet、JSP技术,讲解其在聊天软件中的作用及使用方法。
教材章节:第1章 Java Web基础2. 数据库设计与操作:讲解数据库在聊天软件中的应用,学习JDBC连接数据库,实现用户信息、聊天记录的存储和查询。
教材章节:第2章 数据库设计与操作3. 前端界面设计:学习HTML、CSS、JavaScript技术,实现聊天软件的界面设计,提高用户体验。
java课程设计聊天小

java课程设计聊天小一、教学目标本节课的教学目标是让学生掌握Java编程语言的基本语法和面向对象编程思想,通过编写一个简单的聊天小应用程序,培养学生解决实际问题的能力。
具体目标如下:1.知识目标:–掌握Java基本数据类型、运算符、控制结构;–理解面向对象编程的基本概念,如类、对象、封装、继承、多态;–熟悉Java编程语言的常用开发工具和环境。
2.技能目标:–能够运用Java编程语言编写简单的程序;–能够运用面向对象编程思想设计和实现程序;–能够利用Java开发工具进行程序的编译和运行。
3.情感态度价值观目标:–培养学生对编程语言的兴趣和好奇心;–培养学生解决问题的能力和团队合作精神;–培养学生热爱科学、追求创新的精神。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java基本语法:数据类型、运算符、控制结构;2.面向对象编程:类、对象、封装、继承、多态;3.Java开发工具和环境:Eclipse或IntelliJ IDEA的使用。
通过讲解和示例,让学生了解和掌握Java编程语言的基本语法和面向对象编程思想,最终能够编写一个简单的聊天小应用程序。
三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:讲解Java基本语法和面向对象编程思想;2.案例分析法:分析实际编程案例,让学生更好地理解和掌握知识;3.实验法:让学生动手实践,编写聊天小应用程序,提高实际操作能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java编程思想》;2.参考书:《Java核心技术》;3.多媒体资料:教学PPT、视频教程;4.实验设备:计算机、网络环境。
通过以上教学资源的使用,丰富学生的学习体验,提高学习效果。
五、教学评估本节课的教学评估将采用多种方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估其对知识的掌握和应用能力。
java课程设计聊天小程序解析

break;
if(i>=clientVector.size()){//昵称不存在则:
nick=msg;//在clientVector中添加本线程信息
msg="#您使用的昵称:"+msg;//并通告所有线程的客户端,本用户进入
noticeAddUser();//以与请求其他有用户信息
clientVector.add(this);
requestAllUser();
firstRead=false;
}
else{
msg="#您输入的昵称已经存在,请重新输入:";//昵称存在,发送系统提示
}
return msg;
}
if(msg.startsWith("!")==true){//若客户端发送密语
关闭Socket结束与当前的拆除连接关闭Socket结束与server的通信
client的通信等待其他的请求
关闭ServerS或程序代码(可以加页):
主要代码:服务端ChatServer
class SocketThread extends Thread{//线程类,用于和每个客户端连接
端口提供监听服务
等待来自chartclient的服务
请求
接受chartclient端的请求用建立连接创建Socket对象向server的监听端
返回的Socket建立连接 口请求
通过向Socket中读写数据来数据通信通过向新的Socket中读写数据来
与chartclient端通信 与server端通信
if(clientVector.get(i).nick.equals(this.nick)==false)
java简易聊天室课程设计

java简易聊天室课程设计一、课程目标知识目标:1. 让学生掌握Java网络编程基础知识,理解TCP/IP协议和Socket通信原理;2. 学会使用Java语言构建简易聊天室程序,了解客户端与服务器之间的数据传输过程;3. 了解多线程编程在聊天室中的应用,掌握线程的创建、同步与通信方法。
技能目标:1. 培养学生运用所学知识解决实际问题的能力,具备独立设计并实现简易聊天室程序的能力;2. 提高学生的编程实践能力,学会使用调试工具分析问题、解决问题;3. 培养学生的团队协作能力,学会在项目开发中分工合作、共同进步。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,提高学习积极性;2. 培养学生勇于尝试、善于思考、面对问题主动解决的良好习惯;3. 增强学生的网络安全意识,学会在聊天过程中保护个人隐私。
分析课程性质、学生特点和教学要求,本课程旨在通过实际操作,让学生深入了解Java网络编程知识,掌握简易聊天室的设计与实现。
课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续教学设计和评估提供依据。
1. Java网络编程基础:讲解TCP/IP协议,Socket通信原理,以及常用类和方法;- 课本章节:第五章 网络编程,第1-2节;- 内容安排:网络通信基本概念,Socket编程,ServerSocket编程。
2. 简易聊天室设计与实现:- 课本章节:第五章 网络编程,第3-4节;- 内容安排:客户端与服务器程序设计,多线程实现,字符串处理,异常处理。
3. 聊天室功能拓展:- 课本章节:第五章 网络编程,第5节;- 内容安排:文件传输,用户列表管理,消息加密与解密。
4. 调试与优化:- 课本章节:第六章 异常处理与调试,第1-2节;- 内容安排:使用调试工具,分析问题,优化代码,提高程序稳定性。
5. 项目实践:- 课本章节:第五章 网络编程,第六章 异常处理与调试;- 内容安排:分组进行项目实践,完成简易聊天室程序设计与实现,进行功能拓展和优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
攀枝花学院Java程序设计课程设计题目:聊天程序学生姓名: Puter学号: 201310803036所在院(系):数学与计算机学院专业:网络工程班级: 2013级网本指导教师:吴建斌职称:导师2014 年12 月31 日攀枝花学院本科学生课程设计任务书题目聊天程序1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)该程序实现聊天功能,包括服务器段程序和客户端程序。
要求:(1)客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的消息。
(2)服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。
3、主要参考文献[1]朱福喜.《Java语言程序设计》(第二版).科学出版社[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社[3] Deitel.《Java大学基础教程》(第六版).电子工业出版社[4] MaryCampione.《Java语言导学》(第四版).机械工业出版社[5] Y.Daniel Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社[6] Kathy Sierra.《Head First Java》(第二版).东南大学出版社4、课程设计工作进度计划序号时间(天)内容安排备注1 1 分析设计准备周一2 2 编程调试阶段周二至周三3 1 编写课程设计报告周四4 1 考核周五总计5(天)指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表题目名称聊天程序评分项目分值得分评价内涵工作表现20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02 科学实践、调研7 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
03 课题工作量7 按期圆满完成规定的任务,工作量饱满。
能力水平35% 04 综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。
05 应用文献的能力 5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。
06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。
07 计算及计算机应用能力 5 具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。
08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10 具有较强的数据收集、分析、处理、综合的能力。
成果质量45% 09插图(或图纸)质量、篇幅、设计(论文)规范化程度5 符合本专业相关规范或规定要求;规范化符合本文件第五条要求。
10 设计说明书(论文)质量30 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。
11 创新10 对前人工作有改进或突破,或有独特见解。
成绩指导教师评语指导教师签名:年月日目录摘要 (1)一、需求分析 (1)二、概要设计 (3)三、详细设计 (4)四、调试分析 (4)五、结论 (14)六、实验分工 (14)七、参考文献 (14)摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
现在的各种聊天工具功能越来越强大,但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。
为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。
本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。
建立在JA V A平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JA V A语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键词:多线程;客户机/服务器;JA V A ; Socket ; Eclipse ; TCP/IP一、需求分析为了更好的掌握java这门课程的内容,同时更好的理解与掌握socket编程,对所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,掌握Java语言编程技巧。
要求使用图形用户界面。
能实现一个聊天室中多人聊天。
可以两人私聊。
(提示:使用socket通信)程序描述清晰准确,思路清晰,程序能够实现相应的功能。
聊天时系统是通过即时通讯技术来实现在线聊天、交流的软件。
目前有2种架构形式,1、一种是C/S架构,采用客户端/服务器形式,用户使用过程中需要下载安装客户端软件,典型的代表有:QQ、百度HI 、Skype QQ VS GU、Gtalk、新浪UC、MSN等;2、采用B/S架构,即浏览器/服务端形式,这种形式的即时通讯软件,直接借助互联网为媒介、客户端无需安装任何软件,既可以体验服务器端进行沟通对话,一般运用在电子商务网站的服务商,典型的代表有Websitelive 、53KF、live800等二、概要设计目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。
腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。
腾讯的成功与其对QQ的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。
可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。
并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。
其模型如图1-1图1.1三、详细设计通过TCP网络编程,主要编写有客户端与服务器端两个部分,服务器端通过循环一直从客户端接收信息,并通过线程实现多个客户端连接。
服务器发送信息则通过定义链表保存客户端信息。
每个客户端向服务器发送信息时,则通过链表中的所有客户端的连接而发送信息给所有客户端界面从而实现局域网内多人聊天。
而客户端则主要是界面的编写,通过一个线程一直从服务器获取信息,如果不为空时就在界面上显示。
四、调试分析1、首先运行服务器如图1.2:图1.2分析:服务器进入阻塞状态。
等待连接。
主要代码:package .server;import java.io.IOException;import .ServerSocket;import .Socket;import java.util.ArrayList;import java.util.List;import .server.thread.ThreadServer;public class Server { //服务器功能实现private ServerSocket server = null ;public static List<Socket> list = new ArrayList<Socket>() ;//定义链表储存客户信息private Socket client = null ;private int count = 0 ;public Server(){try {server = new ServerSocket(8888) ; //创建服务器} catch (IOException e1) {e1.printStackTrace();}System.out.println("等待服务器被连接······");boolean flag = true ;while(flag){synchronized(this){try {client = server.accept() ;count++; //记录客户连接数目} catch (IOException e1) {e1.printStackTrace();}list.add(client) ;System.out.println("第"+count+"客户端被连接!");try {new Thread(new ThreadServer(client)).start();//定义线程,实现多个客户端连接} catch (Exception e) {e.printStackTrace();flag = false ;}}}try {server.close();} catch (IOException e) {e.printStackTrace();}}}package .server.thread;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import .Socket;import java.util.Iterator;import .server.util.ListCO;public class ThreadServer implements Runnable{ /定义线程,实现多个客户端连接private BufferedReader buf = null ;private Socket client = null ;public ThreadServer(Socket client) throws Exception{this.client = client ;buf=new BufferedReader(new InputStreamReader(this.client.getInputStream())) ; //连接从客户端获取信息}@Overridepublic void run(){ //线程String str = null ;boolean f = true ;while(f){ //一直与连接的客户端通讯try {str = buf.readLine() ;} catch (Exception e) {f = false ;}if("bye".equals(str)){f = false ;}else{ListCO lout = null ;try {lout = new ListCO();} catch (Exception e) {e.printStackTrace();}Iterator<PrintStream> iter = lout.getLout().iterator();//向所有的客户端发送信息while(iter.hasNext()){PrintStream o = iter.next() ;o.println(str);}}}}}package .server.util;import java.io.PrintStream;import .Socket;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import .server.Server;public class ListCO { //保存客户端的连接private List<Socket> list = null ; //通过链表保存private List<PrintStream> lout = null ;public ListCO() throws Exception{this.list = Server.list ;lout = new ArrayList<PrintStream>() ;Iterator<Socket> ilist = list.iterator() ;while(ilist.hasNext()){PrintStream out = null ;Socket c = ilist.next() ;out = new PrintStream(c.getOutputStream()) ;lout.add(out) ;}}public List<PrintStream> getLout() {return lout;}public void setLout(List<PrintStream> lout) {this.lout = lout;}}2、客户端的启动如图1.3、图1.4:分析:登录界面先设置聊天使用的名字图1.4分析:启动时先输入聊天姓名,然后才进入聊天,这样就可以进行多人聊天了。