计算机网络聊天室课程设计

合集下载

聊天室软件课程设计

聊天室软件课程设计

聊天室软件课程设计一、课程目标知识目标: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网络聊天室课程设计

c网络聊天室课程设计

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源程序)

vc++网络聊天室的实现计算机操作系统课程设计说明书(含MFC源程序)

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网络聊天室课程设计

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.实验设备:计算机、网络设备等。

五、教学评估本课程的教学评估将采用多元化的评价方式,全面客观地评价学生的学习成果。

TCP课程设计之网络聊天室

TCP课程设计之网络聊天室

成绩南京工程学院通信工程学院课程设计说明书(论文) 题目网络聊天室的设计课程名称通信应用软件课程设计专业多媒体通信班级媒通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后,客户端关闭连接并退出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算机网络》课程设计报告设计题目:聊天室同组人姓名:王巍瑾马志超周旭同组人学号:***********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.开启服务器服务器用来将用户发送的信息发送到指定用户,所以程序执行之前服务器一定要开启。

相关文档
最新文档