计算机网络聊天室课程设计
- 格式:doc
- 大小:2.49 MB
- 文档页数:19
聊天室软件课程设计一、课程目标知识目标:1. 了解聊天室软件的基本概念,掌握网络通信原理;2. 学习并掌握聊天室软件的功能模块和使用方法;3. 了解聊天室软件在人际沟通中的应用和影响。
技能目标:1. 学会使用聊天室软件进行文字、语音和视频聊天;2. 培养学生运用网络通信工具解决问题的能力;3. 提高学生在网络环境下的信息素养和自我保护意识。
情感态度价值观目标:1. 培养学生对网络通信工具的尊重和正确使用态度;2. 增强学生的团队协作意识,学会在网络环境中与他人友好交流;3. 培养学生遵守网络道德规范,树立正确的网络价值观。
课程性质:本课程为信息技术课程,旨在帮助学生了解聊天室软件的使用,提高网络沟通能力。
学生特点:六年级学生,对网络通信工具有一定了解,但使用经验和安全意识不足。
教学要求:结合学生特点,课程设计需注重实践操作和理论知识的结合,关注学生在网络环境下的安全和道德教育。
通过本课程的学习,使学生能够安全、有效地使用聊天室软件,培养良好的网络沟通素养。
二、教学内容1. 聊天室软件概述- 了解聊天室软件的定义、发展历程和分类;- 掌握聊天室软件的基本功能和使用场景。
2. 网络通信原理- 学习TCP/IP协议、Socket编程等基本网络通信知识;- 了解聊天室软件在网络通信中的工作原理。
3. 聊天室软件功能模块- 文字聊天:学习输入、发送、接收和查看消息的方法;- 语音和视频聊天:掌握语音、视频通话的设置和操作;- 表情和图片发送:了解聊天室软件中的多媒体功能。
4. 聊天室软件使用方法- 学习如何注册、登录和设置个人资料;- 掌握添加好友、创建群组和参与群聊的操作;- 了解聊天室软件的安全防护措施。
5. 网络沟通素养与安全- 学习网络沟通礼仪,培养良好的沟通习惯;- 了解网络安全知识,提高防范网络诈骗和侵害的意识;- 掌握个人信息保护的方法和技巧。
教学内容安排和进度:第一课时:聊天室软件概述、网络通信原理;第二课时:聊天室软件功能模块、使用方法;第三课时:网络沟通素养与安全。
计算机网络课程设计报告学生姓名学号班级计算机0908班指导教师设计时间2012.1.7~2012.1.10目录第一章设计目的、任务1.1设计目的 (3)1.2设计的任务 (3)第二章系统分析设计2.1系统流程分析 (4)2.2系统功能需求分析 (5)2.3系统运行要求 (6)2.4系统数据要求 (6)第三章系统实现3.1 系统界面设计 (7)3.2 系统功能模块设计 (9)第四章体会和建议第一章设计目的、任务1.1设计目的1.了解通信规范的细节及其实现。
2.通过本次网络课程设计,掌握高级编程语言中对用户界面的设计方法,以及多线程技术、基于TCP/IP的Socket通信的编程方法,同时能够把协议的设计思想应用到实际中去。
1.2设计的任务编写一个聊天室,实现C/S模式的会话。
基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。
学习通信编程Socket接口编程,使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。
网络聊天是网络编程的典型应用之一,编写网络聊天软件对于学习网络编程无疑有着很大的帮助。
第二章系统分析设计2.1系统流程分析该C/S模式的聊天系统,就是服务器来提供服务端连接响应,客户端主动的发起连接请求。
当多个用户同时连接到服务器时,经由服务器的接收与转发便可以实现客户之间的通信。
因此,系统需要实现服务器端和客户端两部分程序。
下图是基本的客户端连接服务器的流程图。
对于整体系统的流程,也是分为两部分,即客户端的发起请求,服务器响应请求。
首先是客户端的登陆,客户端在登陆时,必须设置所想要连接的服务器,然后客户端就会根据设置的服务器IP地址,向服务器发起建立连接请求。
而服务器端是始终在监听网络状态的,主要检测到有一个连接请求,那么服务器就会给当前的发起端分配一个服务线程,用于处理它的各种请求。
c网络聊天室课程设计一、课程目标知识目标:1. 学生能够理解网络聊天室的基本概念,掌握网络通信的原理;2. 学生能够掌握网络聊天室的编程基础,了解相关的编程语言及库;3. 学生能够理解网络安全的重要性,了解网络聊天室的安全风险及防范措施。
技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的网络聊天室程序;2. 学生能够通过实际操作,掌握网络聊天室的搭建与调试技巧;3. 学生能够运用网络安全知识,提高网络聊天室的安全防护能力。
情感态度价值观目标:1. 培养学生对网络通信技术的好奇心与探究精神,激发学习兴趣;2. 培养学生团队合作意识,学会与他人共同解决问题;3. 增强学生的网络安全意识,树立正确的网络道德观念。
课程性质分析:本课程为信息技术课程,旨在让学生了解网络聊天室的相关知识,提高编程实践能力,同时注重培养学生的网络安全意识。
学生特点分析:本课程针对的是八年级学生,他们对新鲜事物充满好奇心,具备一定的信息技术基础,但编程实践能力和网络安全意识有待提高。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的编程实践能力;2. 重视学生的主体地位,鼓励学生积极参与课堂讨论与实践活动;3. 关注学生的个体差异,因材施教,提高学生的综合素质。
二、教学内容1. 网络聊天室基本概念与原理- 网络通信基础- 聊天室的组成与功能- 网络聊天室的分类2. 编程语言及库介绍- Python编程语言基础- Python网络编程库(如socket、asyncio等)- 常用网络聊天室开发框架3. 网络聊天室程序设计与实现- 客户端与服务器的通信原理- 消息传输协议(如TCP、UDP)- 网络聊天室程序设计步骤与实例4. 网络安全与道德规范- 网络聊天室的安全风险- 数据加密与身份认证- 网络道德观念与法律法规5. 教学大纲与进度安排- 第一周:网络聊天室基本概念与原理学习- 第二周:Python编程语言及网络编程库学习- 第三周:网络聊天室程序设计与实现- 第四周:网络安全与道德规范教育6. 教材章节与内容列举- 第八章:网络编程基础- 第九章:Python网络编程- 第十章:网络安全与道德规范教学内容确保科学性和系统性,结合课程目标,按照教学大纲安排和进度,使学生能够循序渐进地掌握网络聊天室的相关知识。
网络聊天室课程设计一、课程目标知识目标:1. 学生理解网络聊天室的基本概念,掌握网络交流的基本礼仪和技巧。
2. 学生了解网络聊天室的常用功能,学会使用相关软件或平台进行安全、文明的网络交流。
3. 学生掌握网络信息安全的基本知识,提高防范网络诈骗和不良信息的能力。
技能目标:1. 学生能够运用所学网络交流技巧,与他人进行有效沟通,表达自己的观点和需求。
2. 学生能够运用网络信息安全知识,保护个人隐私和信息安全,避免上当受骗。
3. 学生能够自主查找网络资源,拓展学习视野,提高信息素养。
情感态度价值观目标:1. 学生树立正确的网络道德观念,尊重他人,文明交流,自觉抵制不良信息。
2. 学生增强网络安全意识,遵守网络法律法规,积极维护网络环境和谐稳定。
3. 学生培养团队协作精神,学会在网络聊天室中与他人合作、分享,提升人际沟通能力。
课程性质:本课程为信息技术与网络素养教育相结合的实践课程,旨在帮助学生掌握网络聊天室相关知识,提高网络沟通能力,培养正确的网络道德观念。
学生特点:六年级学生具有一定的网络基础,好奇心强,善于接受新事物,但网络素养和安全意识有待提高。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作和案例分析,提高学生的网络素养和安全意识。
在教学过程中,关注学生的个体差异,鼓励学生积极参与,培养自主学习和团队合作能力。
通过课后评估,检验课程目标的达成情况,为后续教学提供依据。
二、教学内容1. 网络聊天室基础知识:- 网络聊天室的定义与功能- 常见的网络聊天软件与平台介绍2. 网络交流礼仪与技巧:- 网络沟通的基本原则- 文明用语与礼貌表达- 网络表情符号的正确使用3. 网络信息安全:- 个人信息保护意识- 网络诈骗类型及防范方法- 遵守网络法律法规,维护网络安全4. 实践操作:- 网络聊天软件的注册与使用- 网络聊天室中的文明交流与团队协作- 案例分析与讨论教材章节关联:本教学内容与教材中“网络素养与信息安全”章节相关,涉及以下内容:1. 网络聊天室基础知识:教材第3章第1节2. 网络交流礼仪与技巧:教材第3章第2节3. 网络信息安全:教材第4章第1节4. 实践操作:教材第3章和第4章的实践案例教学进度安排:1. 网络聊天室基础知识(1课时)2. 网络交流礼仪与技巧(1课时)3. 网络信息安全(1课时)4. 实践操作与案例分析(2课时)三、教学方法1. 讲授法:- 对于网络聊天室基础知识、网络信息安全等内容,采用讲授法进行教学,为学生提供系统的理论指导。
vc++网络聊天室的实现计算机操作系统课程设计说明书(含MFC源程序)————————————————————————————————作者:————————————————————————————————日期:实验报告||实验名称网络聊天室的实现课程名称计算机操作系统||目录【1】设计原理—-—————————-———--——-—-—4 【2】程序流程图———-——————-—-———————-—9 【3】设计步骤—-—-—-———————————————-—10 【4】使用方法说明———--————-——-———————-21 【5】实验结果及分析—-——-—————--————-———24设计原理计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。
各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion 等,都是做的比较成功的实时聊天工具。
随着网络的日益普及,各种聊天工具也层出不穷,接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。
此程序主要分为两部分:服务器端和客户端。
服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。
在服务器端的成员列表栏中会显示在线的所有人名单,有人退出聊天室,成员列表会自动除名。
服务器端同时也提供了成员之间的私聊功能,此时服务器端作为一个转发站,进行消息的转发。
整个程序的主体使用了CSocket类的方法,实现了网络通讯聊天。
整个程序设计为两个部分:服务器(ChatServer)和客户端(Chat)多人聊天的关键在于要将每个客户端发送过来的消息分发给所有其他客户端,为了解决这个问题,在服务器程序中建立一个套接口链表,用来保存所有与客户端建立了连接的服务端口.下面描述了多人聊天的实现原理:当客户端Client N向对应的服务端口N发送了消息Message,服务端口N将Message 复制给所有套接口列表(USERLIST)中的套接口缓冲区,然后向每个服务端口发送WRITE 消息,使每个服务端口将Message发送给对应的客户端。
《计算机网络》课程设计报告设计题目:聊天室同组人姓名:王巍瑾马志超周旭同组人学号:201515151052015151510420151515138专业班级:计科153指导教师:金松林日期:2017年6月12日—16日一、题目意义和需求分析1.题目意义即时通讯或在线聊天是目前Internet上最为流行的通讯方式,用户之间通过文字传输信息。
这是一种可以让使用者在网络上建立私人聊天室的实时通讯服务。
除了简单的文字信息,使用者之间还可以互相发送文件、文档、音乐、视频等文件。
只要与服务器链接,无论对方在天涯海角,双方隔得多远都没有问题。
消息的实时更新,拉近了我们相知的桥梁,文件的相互传输,使同事之间办公更方便快捷。
2.需求分析a.注册当选择注册时,创建一个File文件类,载入“user.txt”,判断用户名是否已经存在,用户名有效后写入“user.txt”。
b.登录去“user.txt”读取用户数据,验证用户名是否存在,验证用户密码是否正确,如果以上验证全部正确,返回客户端信息,提示登陆成功进入聊天界面。
c.聊天所有已登录的用户的名称都会在列表中显示,然后就可以选择其中一个或多个发起聊天。
接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户端用Socket 传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Message中提取消息类型,再根据类型将消息转化后通过Socket转发到相应的用户。
d.文件传输在聊天的基础上增加了一个文件传输功能。
同事之间办公难免有一些资料的来往,在登录列表中选择一个用户或多个用户发送文件,等对方确认接收后即可建立连接进行文件传输。
二、设计说明聊天室总体分为三个模块,主要包括注册登录,聊天模块,文件传输模块。
系统运行在java环境中,要求java环境为JDK 1.8+;设计中的重点是通过Java中的ServerSocket搭建TCP服务器,通过在客户端创建Socket套接字连接服务器,然后通过ObjectOutputStream来发送Message(数据消息的封装类)对象让服务器接受。
c 网络聊天室课程设计一、教学目标本课程旨在让学生了解网络聊天室的基本原理和功能,掌握C语言在网络编程中的应用,培养学生具备网络编程的基本能力和解决实际问题的能力。
具体目标如下:1.知识目标:(1)了解网络聊天室的基本概念和原理;(2)掌握C语言在网络编程中的基本方法;(3)理解网络编程中的Socket编程和TCP/IP协议。
2.技能目标:(1)能够使用C语言编写简单的网络聊天室程序;(2)能够分析和解决网络编程中的基本问题;(3)能够运用所学知识,独立完成网络编程项目。
3.情感态度价值观目标:(1)培养学生对网络编程的兴趣和热情;(2)培养学生团队协作和自主学习的能力;(3)培养学生具备良好的网络编程道德和法律法规意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.网络聊天室的基本概念和原理:介绍网络聊天室的定义、功能和应用场景。
2.C语言在网络编程中的应用:讲解C语言在网络编程中的基本方法,如Socket编程、TCP/IP协议等。
3.网络编程实践:通过案例教学,让学生动手编写网络聊天室程序,培养实际操作能力。
4.项目实践:学生分组完成网络编程项目,提高团队协作和解决实际问题的能力。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解网络聊天室的基本概念、原理和方法。
2.案例分析法:分析典型网络聊天室程序,让学生了解实际应用。
3.实验法:让学生动手编写网络聊天室程序,培养实际操作能力。
4.讨论法:分组讨论项目实践中的问题,提高团队协作和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言网络编程教程》等。
2.参考书:《网络编程技术手册》、《TCP/IP协议详解》等。
3.多媒体资料:网络聊天室程序示例、教学视频等。
4.实验设备:计算机、网络设备等。
五、教学评估本课程的教学评估将采用多元化的评价方式,全面客观地评价学生的学习成果。
成绩南京工程学院通信工程学院课程设计说明书(论文) 题目网络聊天室的设计课程名称通信应用软件课程设计专业多媒体通信班级媒通111学生姓名张瑜学号 208110515设计地点信息楼C-216指导教师耿鹏设计起止时间:2013年11月2日至2013年11月6日目录1.概述............................................... 错误!未定义书签。
2.设计介绍.. (5)2.1功能描述 (5)2.2流程图 (6)3.程序实现(关键代码解释) (10)4.功能演示(说明) (13)5.总结与展望 (14)6.参考文献.......................................... 错误!未定义书签。
61.概述1.1系统概述Linux是一种针对PC计算机和工作站得操作系统。
他具有像Windows和Mac 那样的功能齐全的图形用户界面。
由于Linux的开源的特点,越来越多的人转而使用Linux作为PC机得操作系统。
Linux系统支持三种并发方式:多进程、多线程、以及I/O多路复用。
而多线程技术是并行技术中开销较小,效率较高的一种方式,与其他两种方式相比,线程占用更少的系统资源,而且效率更高,是并发技术中最常用的方式。
网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法。
服务器端:循环等候客户连接请求,一旦有客户连接请求,开启一个子线程接受并处理客户请求,接受来自客户的信息。
然后将客户信息反转后再返回给客户端。
主线程继续等待其他客户请求。
服务器具有同时处理多个用户的能力。
客户端:首先与服务器建立连接,然后向服务器发送数据进行交互,接受服务器的反馈信息并显示,之后继续等待用户输入直至用户输入ctrl+D结束通信。
客户端接到输入ctrl+D后,客户端关闭连接并退出。
JAVA课程设计报告聊天室一、课程目标知识目标:1. 学生能理解网络编程的基本概念,掌握JAVA Socket编程的基础知识。
2. 学生能运用面向对象编程思想,设计并实现聊天室客户端与服务器的数据传输功能。
3. 学生了解并掌握多线程技术在网络编程中的应用。
技能目标:1. 学生能运用所学知识,独立编写并调试简单的聊天室程序。
2. 学生具备分析问题、解决问题的能力,能针对聊天室程序进行优化和改进。
3. 学生能在团队协作中发挥自己的作用,与他人共同完成一个完整的网络编程项目。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习JAVA的自信心。
2. 学生认识到团队合作的重要性,培养良好的团队协作精神。
3. 学生通过编程实践,体验创新与创造的乐趣,培养积极向上的学习态度。
本课程针对高年级学生,结合课本内容,注重理论与实践相结合,以提高学生的实际编程能力为主要目标。
课程要求学生在掌握基本知识的基础上,能够独立完成实际项目,培养其分析问题、解决问题的能力。
同时,课程强调团队协作,使学生学会与他人共同进步,共同成长。
通过本课程的学习,使学生达到知识、技能和情感态度价值观的全面提升。
二、教学内容1. 网络编程基础理论:介绍网络编程的基本概念,包括IP地址、端口号、协议等,使学生理解网络通信的基本原理。
- 教材章节:第三章 网络编程基础2. JAVA Socket编程:讲解Socket编程的原理,指导学生掌握客户端与服务器之间的数据传输方法。
- 教材章节:第四章 Socket编程3. 面向对象编程:运用面向对象编程思想,设计聊天室程序,包括类的定义、封装、继承与多态。
- 教材章节:第二章 面向对象编程基础4. 多线程技术:介绍多线程编程的概念,分析在聊天室程序中如何实现多用户并发通信。
- 教材章节:第五章 多线程编程5. 聊天室程序设计与实现:指导学生完成聊天室客户端与服务器的编写,实现基本的功能需求。
聊天室课程设计一、课程目标知识目标:1. 学生能理解并掌握网络聊天室的基本概念,了解其功能和用途;2. 学生能够运用所学的词汇和语法知识,进行流畅的网络交流;3. 学生能够识别并使用网络聊天室中的常用表达方式和礼貌用语。
技能目标:1. 学生能够熟练操作网络聊天室软件,包括发送消息、接收消息和表情使用等;2. 学生能够运用所学的交际技巧,与他人进行有效的网络对话;3. 学生能够通过聊天室进行信息搜索和问题解答,提高信息获取和处理能力。
情感态度价值观目标:1. 学生能够树立正确的网络交流意识,尊重他人,保持友善和礼貌的态度;2. 学生能够意识到网络聊天室的积极作用,如增进友谊、拓展知识等;3. 学生能够认识到网络聊天室的潜在风险,学会保护个人隐私,遵守网络道德规范。
课程性质:本课程为信息技术与英语学科的融合课程,旨在提高学生的网络交流能力和英语实际应用能力。
学生特点:六年级学生已具备一定的英语基础和计算机操作技能,对网络聊天室充满好奇,但可能缺乏安全意识和正确使用网络的能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过互动交流、案例分析等方式,培养学生的网络沟通能力和信息安全意识。
将课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. 网络聊天室基本概念:介绍网络聊天室的定义、功能、分类及其在日常生活和学习中的应用场景。
教材章节:《信息技术》第五章第三节“网络交流工具”2. 网络聊天室操作技巧:教授如何注册、登录聊天室,发送消息、接收消息、使用表情和图片等功能。
教材章节:《信息技术》第五章第四节“网络聊天工具的使用”3. 网络聊天室交际礼仪:讲解网络聊天室中的礼貌用语、表达方式以及尊重他人、保护隐私等原则。
教材章节:《英语》第六单元“Social Etiquette”4. 网络安全与道德:引导学生了解网络聊天室的安全风险,教育学生保护个人信息,遵守网络道德规范。
教材章节:《信息技术》第五章第五节“网络安全与道德”5. 实践活动:组织学生进行网络聊天室模拟对话,提高实际应用能力和网络沟通技巧。
tcp聊天室课程设计一、课程目标知识目标:1. 学生能理解TCP协议的基本原理,掌握聊天室建立过程中涉及的网络通信知识。
2. 学生能掌握网络编程中Socket的使用,了解基于TCP的客户端和服务器通信过程。
3. 学生了解数据传输过程中编码和解码的重要性,并掌握相关方法。
技能目标:1. 学生能运用所学知识,独立编写简单的TCP聊天室程序。
2. 学生具备调试和排查网络通信中可能出现的问题的能力。
3. 学生能够通过实际操作,体验网络编程的过程,提高实际动手能力。
情感态度价值观目标:1. 学生通过学习,培养对网络通信技术的兴趣,激发探索计算机网络世界的热情。
2. 学生在团队协作中,学会与他人沟通、分享和合作,培养良好的团队精神。
3. 学生认识到网络技术在实际应用中的价值,增强对所学知识的认同感和自信心。
课程性质分析:本课程为计算机网络编程实践课,注重理论与实践相结合,强调学生的动手操作能力和问题解决能力的培养。
学生特点分析:本年级学生具备一定的编程基础和网络知识,对新鲜事物充满好奇心,喜欢探索和实践。
教学要求:1. 教学内容与实际应用紧密结合,提高学生的学习兴趣和积极性。
2. 注重培养学生的动手操作能力和团队协作能力。
3. 教师应关注学生的个体差异,提供有针对性的指导,确保每位学生都能达到课程目标。
二、教学内容1. TCP协议原理:讲解TCP协议的特点、三次握手建立连接的过程、四次挥手断开连接的过程,结合教材相关章节,让学生深入理解TCP协议的工作机制。
2. 网络编程基础:介绍Socket编程的基本概念、类型和方法,以教材中网络编程章节为基础,让学生掌握基于TCP的客户端和服务器编程方法。
3. 聊天室程序设计:详细讲解聊天室程序的设计思路、功能模块划分,以及各模块的实现方法,结合教材案例,让学生学会编写简单的聊天室程序。
4. 数据传输与编码:分析聊天室中文字、表情等数据的传输过程,讲解编码和解码的方法,以教材相关内容为参考,让学生掌握数据传输中的编码和解码技巧。
基于TCP协议编程的网络聊天室设计容:基于TCP协议编程的方式,编写程序模拟网络聊天室的运行过程。
设计要求:1. 采用C/S模式,基于TCP协议编程的方式,使得各个用户通过服务器转发实现聊天的功能。
2. 分为两大模块:客户端模块和服务器端模块。
3. 客户端模块的主要功能:1)登陆功能:用户可以注册,然后选择服务器登入聊天室。
2)显示用户:将在线用户显示在列表中。
3)接收信息:能接收其他用户发出的信息。
4)发送信息:能发出用户要发出的信息。
4.服务器端模块的主要功能:1)检验登陆信息:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。
就允许用户登陆。
2)显示在线状态:将该用户的状态发给各在线用户。
3)转发聊天信息:将消息转发给所有在线的用户。
5. 编程语言不限。
一、需求分析此程序主要分为两部分:服务器端和客户端。
服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。
在服务器端的成员列表栏中会显示在线的所有人,有人退出聊天室,成员列表会自动除名。
整个程序的主体使用了CSocket类的方法,实现了网络通讯聊天。
整个程序设计为两个部分:服务器(SpeakerServer)和客户端(SpeakerClient) 。
多人聊天的关键在于要将每个客户端发送过来的消息分发给所有其他客户端,为了解决这个问题,在服务器程序中建立一个套接口链表,用来保存所有与客户端建立了连接的服务端口。
设计原理:服务器通过socket()系统调用创建一个Socket数组后(设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。
如果有客户端连接请求,则在数组中选择一个空socket,将客户端地址赋给这个socket,然后登陆成功的客户就可以在服务器上聊天了。
客户端程序相对简单,只要建立一个socket与服务器端连接,成功后通过这个socket来发送和接收就可以了。
网络聊天室c 课程设计一、课程目标知识目标:1. 让学生掌握网络聊天室的基本概念,了解其功能与用途;2. 使学生了解网络聊天室的礼仪与规范,提高网络安全意识;3. 帮助学生掌握运用网络聊天室进行交流的基本技巧。
技能目标:1. 培养学生运用网络聊天室进行文字、语音、视频沟通的能力;2. 培养学生搜集、整理、分享网络信息的能力;3. 提高学生在网络聊天室中的团队协作和沟通能力。
情感态度价值观目标:1. 培养学生热爱生活、关爱他人的情感,通过网络聊天室传播正能量;2. 增强学生的网络道德观念,自觉遵守网络法律法规,维护网络安全;3. 培养学生积极向上、乐观进取的心态,正确对待网络聊天室中的各种信息。
课程性质:本课程为信息技术学科,结合学生年级特点,注重实践操作和实际应用。
学生特点:六年级学生已具备一定的网络基础,对新鲜事物充满好奇,善于接受新知识,但自控能力较弱,需要引导。
教学要求:教师应结合课程内容和学生特点,采用启发式、讨论式教学,注重培养学生的实际操作能力和网络安全意识。
在教学过程中,关注学生的学习成果,确保课程目标的实现。
二、教学内容1. 网络聊天室的定义与功能:介绍网络聊天室的起源、发展,及其在日常生活和学习中的应用。
教材章节:第一章 网络聊天室概述2. 网络聊天室的分类与使用:讲解文字、语音、视频聊天室的特点及使用方法。
教材章节:第二章 网络聊天室的使用3. 网络聊天室礼仪与规范:学习网络聊天室的礼貌用语,了解网络安全法律法规,提高自我保护意识。
教材章节:第三章 网络聊天室礼仪与规范4. 网络聊天室沟通技巧:探讨如何有效表达、倾听和回应,提高沟通效果。
教材章节:第四章 网络聊天室沟通技巧5. 网络信息搜集与分享:培养学生搜集、整理、分享有价值信息的能力,提高网络素养。
教材章节:第五章 网络信息的搜集与分享6. 网络聊天室团队协作:学习在网络聊天室中进行团队协作的方法,提高团队沟通能力。
教材章节:第六章 网络聊天室团队协作教学内容安排与进度:第一课时:网络聊天室的定义与功能第二课时:网络聊天室的分类与使用第三课时:网络聊天室礼仪与规范第四课时:网络聊天室沟通技巧第五课时:网络信息搜集与分享第六课时:网络聊天室团队协作在教学过程中,教师需根据学生的实际情况,适时调整教学内容和进度,确保学生充分掌握网络聊天室的相关知识和技能。
聊天室java课程设计一、课程目标知识目标:1. 理解Java网络编程的基本原理,掌握聊天室程序设计的相关知识;2. 学会使用Java语言中的Socket编程,实现客户端与服务器之间的通信;3. 了解多线程编程在聊天室中的应用,掌握线程的创建和管理方法。
技能目标:1. 能够独立编写一个基于Java的聊天室程序,实现文字信息的发送与接收;2. 学会使用Java异常处理机制,提高程序的稳定性和可靠性;3. 培养良好的编程习惯,提高代码编写质量。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性;2. 培养学生的团队协作精神,提高沟通能力;3. 增强学生的网络安全意识,遵守网络道德规范。
课程性质:本课程为实践性较强的课程,要求学生在理解理论知识的基础上,动手实践,完成一个具体的聊天室程序设计。
学生特点:学生处于高年级阶段,已经具备一定的Java编程基础,但网络编程和多线程编程方面可能较为陌生。
教学要求:结合学生特点和课程性质,本课程要求教师以引导为主,注重理论与实践相结合,鼓励学生积极参与讨论和动手实践,提高编程能力。
在教学过程中,关注学生的个体差异,提供针对性的指导和帮助,确保学生能够达到课程目标。
通过本课程的学习,使学生能够掌握聊天室程序设计的相关技能,为后续深入学习网络编程打下坚实基础。
二、教学内容1. Java网络编程基础- 网络编程基本概念- 网络协议与网络模型- InetAddress类和InetSocketAddress类2. Socket编程- Socket和ServerSocket类的作用- 客户端与服务器通信原理- 字节流和字符流的使用3. 多线程编程- 线程的概念与创建方式- 线程的生命周期与控制- 线程同步与线程通信4. 聊天室程序设计- 聊天室功能需求分析- 客户端与服务器端程序设计- 文字消息的发送与接收5. 异常处理与程序优化- Java异常处理机制- 常见异常类型与处理方法- 程序优化与调试技巧6. 网络安全与网络道德- 网络安全基本概念- 网络道德规范- 聊天室中的信息安全教学内容安排与进度:第一周:Java网络编程基础,掌握InetAddress类和InetSocketAddress类的使用;第二周:Socket编程,学习客户端与服务器通信原理,实现简单的回显程序;第三周:多线程编程,了解线程的概念,学会创建和管理线程;第四周:聊天室程序设计,分析需求,编写客户端与服务器端程序;第五周:异常处理与程序优化,学习异常处理机制,对聊天室程序进行优化;第六周:网络安全与网络道德,了解网络安全知识,提高网络道德意识。
简单聊天室课程设计一、课程目标知识目标:1. 学生理解网络聊天室的基本概念,掌握聊天室的基本操作流程。
2. 学生掌握运用所学词汇和句型进行网络交流,并能正确运用网络礼仪。
3. 学生了解聊天室中的信息安全,认识到保护个人隐私的重要性。
技能目标:1. 学生能够运用计算机和网络技术,独立进入和操作简单聊天室。
2. 学生能够运用所学语言知识进行有效沟通,提高听说读写综合语言运用能力。
3. 学生能够分析网络聊天室中的信息安全问题,具备初步的自我保护能力。
情感态度价值观目标:1. 学生对网络交流产生兴趣,形成积极的学习态度,愿意主动参与聊天室活动。
2. 学生培养良好的网络道德观念,尊重他人,遵循网络礼仪,传播正能量。
3. 学生树立正确的网络安全意识,关注个人信息安全,避免泄露隐私。
课程性质:本课程为信息技术与英语学科的整合课程,旨在通过实践操作,提高学生的英语交流能力,同时培养其网络素养和信息安全意识。
学生特点:五年级学生具备一定的英语基础,对网络聊天感兴趣,但需引导培养正确的网络行为和安全意识。
教学要求:教师需结合课本内容,设计实用有趣的聊天话题,引导学生正确操作聊天室,并在教学中关注学生的情感态度和价值观的培养。
通过课程学习,使学生达到预期的学习成果,为后续课程打下坚实基础。
二、教学内容本课程依据课程目标,结合课本内容,制定以下教学内容:1. 网络聊天室基础知识:介绍聊天室的定义、功能以及常见的聊天软件。
- 教材章节:信息技术课本第四章第三节“网络交流工具”2. 聊天室操作技巧:教授如何注册账号、登录、发送消息、添加好友等基本操作。
- 教材章节:信息技术课本第四章第四节“网络聊天工具的使用”3. 网络英语交流:学习常用英语聊天词汇、句型和网络缩写,提高英语交流能力。
- 教材章节:英语课本Unit 6 “Online Chat”4. 网络礼仪与信息安全:讲解网络交流的基本礼仪,强调保护个人隐私的重要性。
- 教材章节:信息技术课本第四章第五节“网络安全与隐私保护”教学内容安排与进度:第一课时:网络聊天室基础知识与聊天室操作技巧第二课时:网络英语交流,学习常用词汇、句型和网络缩写第三课时:网络礼仪与信息安全,案例分析,培养良好的网络行为三、教学方法本课程将采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:教师通过讲解网络聊天室的基础知识、操作技巧和网络礼仪,为学生奠定扎实的理论基础。
python聊天室功能课程设计一、课程目标知识目标:1. 学生能理解网络编程的基本原理,掌握Python网络编程中客户端和服务器端的通信方法。
2. 学生能运用Python标准库中的socket模块,实现一个简易的聊天室功能。
3. 学生了解并能运用基本的异常处理,保证聊天室程序的稳定性和可靠性。
技能目标:1. 学生能够独立编写Python代码,创建服务器端和客户端程序,并实现消息的发送与接收。
2. 学生通过实践操作,提升问题解决能力,培养编程思维和逻辑思维能力。
3. 学生能够对聊天室程序进行测试,找出并修复其中的错误,提高程序调试能力。
情感态度价值观目标:1. 学生培养对编程的兴趣和热情,激发主动探索网络编程领域的欲望。
2. 学生通过合作开发聊天室项目,学会团队协作,培养沟通与分享的良好习惯。
3. 学生认识到编程在现实生活中的应用价值,增强学习责任感,树立正确的价值观。
课程性质:本课程为实践性课程,注重培养学生的动手能力和问题解决能力。
学生特点:学生已具备一定的Python编程基础,对网络编程有初步了解,但实践经验不足。
教学要求:结合学生的特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生自主探究和团队协作能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高编程技能和综合素养。
二、教学内容1. 网络编程基础理论:复习IP地址、端口号、TCP/IP协议等基本概念,理解客户端与服务器端的通信原理。
相关教材章节:第XX章 网络编程基础2. Python标准库socket模块:学习socket模块的使用方法,包括创建socket对象、建立连接、发送接收数据等。
相关教材章节:第XX章 Python网络编程3. 聊天室功能实现:详细讲解如何使用Python编写服务器端和客户端代码,实现消息的发送与接收。
相关教材章节:第XX章 实战项目:简易聊天室4. 异常处理:学习如何处理程序中可能出现的异常,保证聊天室程序的稳定运行。
聊天室 课程设计一、课程目标知识目标:1. 学生能够掌握网络聊天室的基本概念和功能。
2. 学生能够了解网络交流的礼仪和安全性,认识到保护个人隐私的重要性。
3. 学生能够运用所学的词汇和句型,进行流畅的网络交流。
技能目标:1. 学生能够熟练运用聊天软件,进行文字、语音和视频沟通。
2. 学生能够运用所学网络交流礼仪,与他人进行礼貌、尊重的互动。
3. 学生能够通过聊天室,提高自己的团队协作和沟通能力。
情感态度价值观目标:1. 学生能够树立正确的网络交流观念,养成良好的网络行为习惯。
2. 学生能够尊重他人,关爱他人,培养团队精神和合作意识。
3. 学生能够认识到网络交流的双刃剑效应,学会自我保护,抵制不良信息。
课程性质分析:本课程为信息技术与英语学科的融合课程,旨在通过聊天室的实践操作,让学生在掌握网络交流技能的同时,提高英语实际应用能力。
学生特点分析:六年级学生具有一定的英语基础,对网络聊天感兴趣,但可能缺乏网络交流的安全意识和礼仪知识。
教学要求:1. 结合课本内容,设计实际情境,让学生在实践中学习。
2. 注重培养学生的网络素养和英语应用能力,提高课堂趣味性。
3. 强调网络交流的安全性和礼仪,引导学生树立正确的价值观。
二、教学内容1. 网络聊天室基本概念与功能介绍:- 聊天室的定义及分类- 聊天室的功能特点- 聊天室在生活中的应用2. 网络交流礼仪与安全:- 网络交流的基本礼仪- 个人隐私保护意识- 抵制网络不良信息的方法3. 英语网络交流技巧:- 常用网络聊天词汇和句型- 文字、语音和视频沟通技巧- 跨文化交流中的注意事项4. 聊天室实践操作:- 聊天软件的下载与安装- 聊天室账号注册与设置- 聊天室内的文字、语音和视频交流实践5. 团队协作与沟通能力培养:- 小组讨论与分享- 网络聊天室中的团队协作游戏- 沟通能力提升练习教学内容安排与进度:第一课时:网络聊天室基本概念与功能介绍第二课时:网络交流礼仪与安全第三课时:英语网络交流技巧第四课时:聊天室实践操作第五课时:团队协作与沟通能力培养教材章节关联:本教学内容与英语课本中关于网络交流的章节相关联,结合信息技术课程,实现跨学科教学。
聊天室jsp课程设计一、课程目标知识目标:1. 学生能理解JSP技术的基本原理和聊天室应用的开发流程。
2. 学生能掌握JSP的脚本语言、内置对象和标签库的使用。
3. 学生能了解Web服务器(如Tomcat)的配置和使用。
技能目标:1. 学生能运用HTML、CSS和JavaScript等技术实现聊天室的前端界面设计。
2. 学生能通过JSP技术实现聊天室的后端功能,包括用户登录、发送消息、接收消息等。
3. 学生能掌握数据库的连接和操作,实现聊天记录的存储和查询。
情感态度价值观目标:1. 培养学生团队协作意识,提高沟通与协作能力。
2. 培养学生解决问题的能力,增强面对困难的勇气和信心。
3. 培养学生关注网络通信技术发展,提高对信息技术的兴趣。
课程性质:本课程为信息技术课程,以实践操作为主,结合理论知识,旨在提高学生的实际动手能力和编程技能。
学生特点:本课程针对的是高年级学生,具备一定的编程基础和逻辑思维能力。
教学要求:教师应注重理论与实践相结合,引导学生主动探索、实践,培养学生的创新意识和实际操作能力。
教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生能够独立完成聊天室JSP课程设计,提高编程技能和团队协作能力。
二、教学内容1. JSP基础:- JSP概述、工作原理和运行环境配置。
- JSP脚本语言:声明、表达式和脚本段。
- JSP内置对象:请求、响应、会话和页面上下文对象。
2. Web前端技术:- HTML:页面结构、表单和表格。
- CSS:样式定义、布局和美化。
- JavaScript:事件处理、DOM操作和Ajax技术。
3. JSP标签库:- 核心标签库:流程控制、表达式语言和常用标签。
- JSTL标签库:通用、XML和SQL标签库的使用。
4. 数据库连接与操作:- JDBC技术:数据库连接、SQL语句执行和结果处理。
- 数据库设计:聊天室数据表设计、SQL语句编写。
pythonGui聊天室课程设计一、课程目标知识目标:1. 学生能理解Python GUI编程的基本概念,掌握使用tkinter库进行图形用户界面设计的方法。
2. 学生能学会使用Python编写基本的聊天室程序,理解客户端与服务器之间的通信原理。
3. 学生能够运用所学知识,结合Python编程技巧,实现一个具备基本功能的聊天室应用程序。
技能目标:1. 学生能够运用tkinter库创建窗口、按钮、文本框等基本图形界面元素,并对其进行事件处理。
2. 学生能够使用Python的网络编程知识,实现聊天室内的信息发送和接收功能。
3. 学生能够通过课程实践,培养问题解决能力、团队协作能力和创新思维能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高对计算机科学的认识和好奇心。
2. 学生通过合作完成课程项目,学会尊重他人意见,培养良好的沟通能力和团队协作精神。
3. 学生能够认识到编程在现实生活中的应用价值,激发他们将所学知识应用于解决实际问题的意识。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生具备一定的Python编程基础,对网络编程和图形用户界面设计有一定了解,但实践经验不足。
教学要求:教师需引导学生通过自主学习、合作探究和动手实践,将所学知识应用于实际项目中,提高学生的编程能力和团队协作能力。
同时,关注学生的个体差异,提供有针对性的指导和帮助。
通过课程目标的分解和教学设计,确保学生能够达到预期的学习成果。
二、教学内容1. tkinter库基本组件的使用:窗口、标签、按钮、文本框、输入框等。
- 课本章节:第三章 图形用户界面设计2. Python网络编程基础:套接字编程、TCP/UDP协议。
- 课本章节:第五章 网络编程3. 聊天室程序设计原理:客户端与服务器通信、多线程。
- 课本章节:第五章 网络编程、第六章 多线程与网络应用4. 聊天室功能实现:用户登录、消息发送、接收与显示、用户列表管理。
tcp聊天室课程设计一、课程目标知识目标:1. 学生能理解TCP协议的基本原理,掌握建立TCP连接的过程。
2. 学生能运用所学编程语言实现一个简单的TCP聊天室程序,了解网络编程的基本方法。
3. 学生了解网络通信中的数据传输方式,掌握字符编码和串行化的概念。
技能目标:1. 学生通过编程实践,提高问题分析能力和代码编写能力。
2. 学生能运用所学知识解决网络通信中遇到的问题,具备一定的调试和排错能力。
3. 学生能够与他人合作完成项目,提高团队协作能力。
情感态度价值观目标:1. 学生培养对计算机网络知识的兴趣,激发探究网络通信原理的欲望。
2. 学生在学习过程中,树立正确的网络安全意识,遵守网络道德规范。
3. 学生通过合作学习,培养沟通能力和团队精神,提高人际交往能力。
课程性质:本课程为计算机网络编程实践课程,以项目为导向,注重培养学生的实际操作能力和团队协作能力。
学生特点:学生处于高年级阶段,具备一定的编程基础和网络知识,具有较强的自学能力和探究欲望。
教学要求:结合学生特点,采用任务驱动法、案例教学法等方法,引导学生主动探究、实践,注重理论与实践相结合。
在教学过程中,关注学生的个体差异,提供个性化的指导和支持。
通过课程学习,使学生能够独立完成简单的网络编程项目,为后续深入学习计算机网络相关知识奠定基础。
二、教学内容1. 理论知识:- TCP协议原理:讲解TCP协议的三次握手和四次挥手过程,分析TCP协议的特点和适用场景。
- 网络编程基础:介绍套接字编程的基本概念,包括IP地址、端口号、TCP流等。
2. 实践操作:- 编程环境准备:引导学生配置编程环境,包括安装开发工具和必要的库文件。
- 聊天室程序设计:按照以下步骤进行教学:a. 实现TCP客户端与服务器的连接与通信。
b. 设计聊天室的用户界面,实现消息的发送和接收。
c. 数据传输处理,如字符编码和串行化。
3. 教学大纲:- 第一课时:TCP协议原理学习,套接字编程基础介绍。
《计算机网络》课程设计报告设计题目:聊天室同组人姓名:王巍瑾马志超周旭同组人学号:***********2015151510420151515138专业班级:计科153指导教师:***日期:2017年6月12日—16日一、题目意义和需求分析1.题目意义即时通讯或在线聊天是目前Internet上最为流行的通讯方式,用户之间通过文字传输信息。
这是一种可以让使用者在网络上建立私人聊天室的实时通讯服务。
除了简单的文字信息,使用者之间还可以互相发送文件、文档、音乐、视频等文件。
只要与服务器链接,无论对方在天涯海角,双方隔得多远都没有问题。
消息的实时更新,拉近了我们相知的桥梁,文件的相互传输,使同事之间办公更方便快捷。
2.需求分析a.注册当选择注册时,创建一个File文件类,载入“user.txt”,判断用户名是否已经存在,用户名有效后写入“user.txt”。
b.登录去“user.txt”读取用户数据,验证用户名是否存在,验证用户密码是否正确,如果以上验证全部正确,返回客户端信息,提示登陆成功进入聊天界面。
c.聊天所有已登录的用户的名称都会在列表中显示,然后就可以选择其中一个或多个发起聊天。
接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Message中提取消息类型,再根据类型将消息转化后通过Socket转发到相应的用户。
d.文件传输在聊天的基础上增加了一个文件传输功能。
同事之间办公难免有一些资料的来往,在登录列表中选择一个用户或多个用户发送文件,等对方确认接收后即可建立连接进行文件传输。
二、设计说明聊天室总体分为三个模块,主要包括注册登录,聊天模块,文件传输模块。
系统运行在java环境中,要求java环境为JDK 1.8+;设计中的重点是通过Java中的ServerSocket搭建TCP服务器,通过在客户端创建Socket套接字连接服务器,然后通过ObjectOutputStream来发送Message(数据消息的封装类)对象让服务器接受。
通过线程来存储来存储用户的Socket连接状态,接受并处理用户发过来的信息,返回处理信息。
客户机也通过线程来接受服务器的处理数据做出响应。
设计的难点是文件的传输,首先通过原有的服务器获得目标客户机的IP地址和端口,然后在客户机上建立服务器,通过要发送的文件的客户机连接接受文件的客户机用DataInputStream 和DataOutputStream 来推送到输入、输出流。
然1.2. 流程图四、程序源代码及注释public ChatRoom(String u_name, Socket client) {// 赋值name = u_name;clientSocket = client;onlines = new Vector();setTitle(name);setResizable(false);setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);setBounds(200, 100, 688, 510);contentPane = new JPanel();setContentPane(contentPane);contentPane.setLayout(null);// 聊天信息显示区域JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(10, 10, 410, 300);getContentPane().add(scrollPane);textArea = new JTextArea();textArea.setEditable(false);textArea.setLineWrap(true);//激活自动换行功能textArea.setWrapStyleWord(true);//激活断行不断字功能textArea.setFont(new Font("sdf", Font.BOLD, 13));scrollPane.setViewportView(textArea);// 打字区域JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setBounds(10, 347, 411, 97); getContentPane().add(scrollPane_1);final JTextArea textArea_1 = new JTextArea();textArea_1.setLineWrap(true);//激活自动换行功能textArea_1.setWrapStyleWord(true);//激活断行不断字功能scrollPane_1.setViewportView(textArea_1);// 关闭按钮final JButton btnNewButton = new JButton("关闭"); btnNewButton.setBounds(214, 448, 60, 30); getContentPane().add(btnNewButton);// 发送按钮JButton btnNewButton_1 = new JButton("发送"); btnNewButton_1.setBounds(313, 448, 60, 30); getRootPane().setDefaultButton(btnNewButton_1); getContentPane().add(btnNewButton_1);// 在线客户列表listmodel = new UUListModel(onlines) ;list = new JList(listmodel);list.setCellRenderer(new CellRenderer());list.setOpaque(false);Border etch = BorderFactory.createEtchedBorder();list.setBorder(BorderFactory.createTitledBorder(etch, "<"+u_name+">"+"在线用户:", TitledBorder.LEADING, TitledBorder.TOP, new Font("sdf", Font.ITALIC, 20), Color.black));JScrollPane scrollPane_2 = new JScrollPane(list);scrollPane_2.setBounds(430, 10, 245, 375);scrollPane_2.setOpaque(false);scrollPane_2.getViewport().setOpaque(false);getContentPane().add(scrollPane_2);// 文件传输栏progressBar = new JProgressBar();progressBar.setBounds(430, 390, 245, 15);progressBar.setMinimum(1);progressBar.setMaximum(100);getContentPane().add(progressBar);// 文件传输提示lblNewLabel = new JLabel("文件传输信息栏:");lblNewLabel.setFont(new Font("SimSun", Font.PLAIN, 12));lblNewLabel.setBackground(Color.WHITE);lblNewLabel.setBounds(430, 410, 245, 15);getContentPane().add(lblNewLabel);try {oos = new ObjectOutputStream(clientSocket.getOutputStream());// 记录上线客户的信息,并发送给服务器Message toMsg = new Message();toMsg.setType(0);toMsg.setName(name);toMsg.setTimer(getTimer());oos.writeObject(toMsg);oos.flush();// 启动客户接收线程CThread = new ClientInputThread();CThread.start();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 发送按钮btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String info = textArea_1.getText();List to = list.getSelectedValuesList();if (to.size() < 1) {JOptionPane.showMessageDialog(getContentPane(), "请选择聊天对象");return;}if (to.toString().contains(name+"(我)")) {JOptionPane.showMessageDialog(getContentPane(), "不能向自己发送信息");return;}if (info.equals("")) {JOptionPane.showMessageDialog(getContentPane(), "不能发送空信息");return;}Message toMsg = new Message();toMsg.setType(1);toMsg.setName(name);String time = getTimer();toMsg.setTimer(time);toMsg.setInfo(info);HashSet set = new HashSet();set.addAll(to);toMsg.setClients(set);// 自己发的内容也要现实在自己的屏幕上面textArea.append(time + " 我对" + to + "说:\r\n" + info + "\r\n");sendMessage(toMsg);textArea_1.setText(null);textArea_1.requestFocus();}});// 关闭按钮btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(isSendFile || isReceiveFile){JOptionPane.showMessageDialog(contentPane,"正在传输文件中,您不能离开...","Error Message", JOptionPane.ERROR_MESSAGE);}else{btnNewButton.setEnabled(false);Message toMsg = new Message();toMsg.setType(-1);toMsg.setName(name);toMsg.setTimer(getTimer());sendMessage(toMsg);b = false;}}});// 离开this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {// TODO Auto-generated method stubif(isSendFile || isReceiveFile){JOptionPane.showMessageDialog(contentPane,"正在传输文件中,您不能离开...","Error Message", JOptionPane.ERROR_MESSAGE);}else{int result = JOptionPane.showConfirmDialog(getContentPane(),"您确定要离开聊天室");if (result == 0) {Message toMsg = new Message();toMsg.setType(-1);toMsg.setName(name);toMsg.setTimer(getTimer());sendMessage(toMsg);// CThread.interrupt();b = false;}}}});// 列表监听list.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {List to = list.getSelectedValuesList();if (e.getClickCount() == 2) {if (to.toString().contains(name+"(我)")) {JOptionPane.showMessageDialog (getContentPane(), "不能向自己发送文件");return;}// 双击打开文件文件选择框FileChoose chooser = new FileChoose();chooser.setDialogTitle("选择文件框"); // 标题哦...chooser.showDialog(getContentPane(), "选择"); // 这是按钮的名字..// 判定是否选择了文件if (chooser.getSelectedFile() != null) {// 获取路径filePath = chooser.getSelectedFile().getPath();File file = new File(filePath);// 文件为空if (file.length() == 0) {JOptionPane.showMessageDialog (getContentPane(),filePath + "文件为空,不允许发送.");return;}Message toMsg = new Message();toMsg.setType(2);// 请求发送文件toMsg.setSize(new Long(file.length()).intValue());toMsg .setName(name);toMsg.setTimer(getTimer());toMsg.setFileName(file.getName()); // 记录文件的名称toMsg.setInfo("请求发送文件");// 判断要发送给谁HashSet<String> set = new HashSet<String>();set.addAll(list.getSelectedValuesList());toMsg.setClients(set);sendMessage(toMsg);}}}});}五、实验数据、结果分析1.开启服务器服务器用来将用户发送的信息发送到指定用户,所以程序执行之前服务器一定要开启。