聊天室系统设计报告
Java聊天室程序设计报告

《Java之聊天室制作》总结报告姓名 __赵其国___________________学号 __2_____________班级 __嵌入式一班__ _____________二〇一二年十二月二十日一,设计目的为了更好的巩固输入输出流,窗体设计,多线程运用,网络通信设计方面的知识。
把所学的课程及相关知识加以融会贯通。
二,设计内容设计的聊天室能实现用户登录,显示登录用户列表,以及发送聊天信息和显示聊天信息的功能。
并可以选择接收信息的用户进行单发或群发的功能,运行程序,登录服务器后,可以从列表中选择单个或多个用户进行聊天,它是图形界面,线程,流和文件系统等技术的综合使用。
三,概要设计实现的功能:1,启动服务器端,接收客户端发来的信息,并在服务器端窗体显示客户端聊天信息,再吧信息返给在线用户,窗体背景色为粉色2,启动客户端窗体,窗体背景色为粉色3,用户名编辑框输入用户名,设置字体显红色,单击登录按钮,在显示在线用户列表内显示用户名,同时用户名编辑框不能编辑4,发送编辑框输入发送内容,单击发送按钮,启动输出流,把信息发送出去,同时把发出的信息追加到聊天内容文本域内,显示用户名,时间和发送内容。
5,单击退出按钮,运用File类和JfileChooser类实现聊天信息的保存6,聊天信息文本域,在线用户显示域和发送信息的文本域加了滚动条,其中聊天信息文本域,发送信息的文本域的文字能自动换行。
7,别的客户端发来信息是通过输入流读取信息,并截取发来信息的用户名及信息,用户名加到在线用户列表上显示在线,信息追加到聊天内容文本域内,显示用户名,时间和发送内容。
功能不足之处:1,保存聊天信息保存为text格式的有黑块。
保存为Doc格式的要转码不能直接打开2,用户在线显示,只能在用户发送信息时别的用户才能得到在线的用户名,然后再加到在线用户列表中,显示用户在线。
3,聊天室只适合群聊,没有实现技能群聊又能和单个人聊天的功能4,用户输出“退出”后在线用户列表中就会把用户删除,不过没有实现没找到错误出在哪里。
聊天室系统设计实训

聊天室系统设计网络程序编辑实训报告前言摘要:本文提出并设计了一个局域网聊天工具,并在WINDOWS平台上利用C#编程语言加以实现。
本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。
关键词:局域网;C/S体系结构;文本聊天;文件传输1、聊天系统的设计与实现摘要:本文提出并设计了一个局域网聊天系统,并在WINDOWS平台上利用C#编程语言加以实现。
本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。
关键词:局域网;C/S体系结构;文本聊天;文件传输2、聊天系统系统概述2.1 开发目标和意义本设计的主要工作是设计一个基于PC机平台的局域网即时聊天系统,具体是采用C/S模式实现用户之间的通信,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。
局域网聊天系统,是在局域网内部使用的,用户之间用来交流的一个系统,一般都具有文本聊天和文件传输功能。
局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。
2.2 C#编程编程通常的通信系统,都采用客户机/服务器(C/S)体系结构,C/S结构是这样的一种结构:它包括客户机和服务器。
客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。
Client/Server结构是当前数据库应用程序中极为流行的一种方式。
尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。
另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。
聊天室程序设计报告

实验5 掌握简单的网络通讯技术实验6 掌握基于典型协议的的网络通讯技术一实验目的1.熟悉Socket的通讯机制,了解网络程序的设计方法。
2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。
如TCP、UDP。
二实验环境1.Windows72.Visual C++ 6.0三实验程序设计1.实验原理1.C/S模式C/S模式是指一个服务器同时为多个客户端服务。
并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。
在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。
在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。
下图所示为服务器创建多个线程来为多个客户机服务。
2.基于TCP的socket通信服务器与客户端是通过套接字来进行通信的。
在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。
接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。
客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。
服务器与客户机通过send()各recv()调用来进行信息的发送和接收。
只有当有信息可接收时,recv()才返回,否则将阻塞。
通信完后,服务器和客户机各自通过closesocket()函数来关闭套接字。
注:以上讲的是阻塞模式。
下图所示的是基于TCP的网络通信模式。
服务器端对于连接套接字2.系统设计实验5要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。
这个实验中的客户机与服务器可以没有区别,即可以采用对等的模式,双方既可以是服务器也可以是客户机。
MFC课程设计报告-聊天室程序设计模板

河海大学计算机及信息工程学院MFC课程设计报告题目聊天室程序设计学号专业授课班号学生姓名指导教师完成时间题目:设计一个聊天室系统,实现多人一起聊天。
一.引言1.1开发背景随着网络信息时代的来临,INTERNET应用越来越广泛,人们越来越习惯于在网上获取和交流信息。
据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。
使用网上聊天已经成为现代年轻人一种新的交往方式。
聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。
所以有大部分的人会进入聊天室聊天,它会给人一个完全自由的聊天世界。
因此我联系所学的MFC 知识,决定做一个简易的聊天室程序。
1.2开发环境以及运行环境1.2.1 开发环境●Intel® Pentium® 4 2.0GHz,512M内存,80G硬盘●Mi crosoft® Windows™ XP Professional●Microsoft® Visual C++ 6.01.2.2 运行环境●Intel® Pentium® 2及以上处理器,32M以上内存,4G以上硬盘●Microsoft® Windows™ XP操作系统●800*600或以上的屏幕分辨率二.需求分析1、用WINSOCK实现简单的网络聊天;2、在MFC开发平台上编写一个聊天系统;3、得server和client之间可以相互通信;4、多人能够发送信息至服务器,首先显示进入聊天室的成员名,然后显示对方名字和聊天信息,可以并发执行。
三、算法分析建立连接过程流程图如下:Server端Client端创建CClientSocket对象,在某个端口提供监听服务等待来自Client端的服务请求接受Client端的请求,用返回的CClientSocket建立连接向用CClientSocket连接建立的流中读写数据关闭CClientSocket,结束与当前Client的通信,等待其他请求关闭CClientSocket对象,结束监听服务创建CChatSocket对象,向Server的监听端口发出请求向用CChatSocket连接建立的流中读写数据关闭CChatSocket,结束与当前Server端的通信建立连接拆除链路数据通路四、详细设计程序个模块代码如下:1.客户端(1)通过AppWizard生成基于对话框的应用程序ChatClient,在向导的第二步选择WindowsSockets的支持,其余步骤均用默认值。
聊天室系统设计报告

聊天室系统设计报告青岛科技大学操作系统课程设计学生班级计算机132班学生学号1308010204学生姓名王永远2016 5 18______年 ___月 ___日设计题目:聊天室系统一、设计目的及要求1.1设计目的通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP协议的Socket编程,掌握Java的多线程机制。
1.2设计要求:实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。
二、技术背景2.1网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。
2.2网络通信(1)IP地址:网络中设备的标识,不易记忆,可用主机名要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。
(2)端口号:用于标识进程的逻辑地址物理端口网卡口逻辑端口我们指的就是逻辑端口A:每个网络程序都会至少有一个逻辑端口B:用于标识进程的逻辑地址,不同进程的标识C:有效端口:0~65535,其中0~1024系统使用或保留端口。
(3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。
TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。
2.3 Socket(1)Socket套接字网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
(2)Socket原理机制A:通信的两端都有Socket。
B:网络通信其实就是Socket间的通信。
C:数据在两个Socket间通过IO传输。
2.4 TCP传输(1)客户端思路A建立客户端的Socket服务,并明确要连接的服务器。
聊天室程序设计报告

实验5 掌握简单的网络通讯技术实验6 掌握基于典型协议的的网络通讯技术一实验目的1.熟悉Socket的通讯机制,了解网络程序的设计方法。
2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。
如TCP、UDP。
二实验环境1.Windows72.Visual C++ 6.0三实验程序设计1.实验原理1.C/S模式C/S模式是指一个服务器同时为多个客户端服务。
并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。
在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。
在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。
下图所示为服务器创建多个线程来为多个客户机服务。
2.基于TCP的socket通信服务器与客户端是通过套接字来进行通信的。
在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。
接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。
客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。
服务器与客户机通过send()各recv()调用来进行信息的发送和接收。
只有当有信息可接收时,recv()才返回,否则将阻塞。
通信完后,服务器和客户机各自通过closesocket()函数来关闭套接字。
注:以上讲的是阻塞模式。
下图所示的是基于TCP的网络通信模式。
服务器端对于连接套接字2.系统设计实验5要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。
这个实验中的客户机与服务器可以没有区别,即可以采用对等的模式,双方既可以是服务器也可以是客户机。
聊天室设计报告

网络聊天系统设计报告组长:靳子豪组员:冯凯强、许玉军、王明明完成时间:2015年11月3日一、可行性研究报告可行性研究报告(ISO标准)编者说明:在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。
该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。
1.引言1.1 编写目的该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提和基础。
写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。
1.2 背景a. 待开发系统的名称:信息交流系统b 用户:大众c. 它基于web小浏览器的程序系统的设计和开发,服务平台:appserv-win开发语言:PHP数据库:MY SQL1.3 定义技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益1.4 参考资料《软件工程导论》(第6版)清华大学出版社张海藩牟永敏编著可行性研究的前提2.1 要求a、聊天室功能用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便b、软件的性能开发该软件应具有的基本要求和功能是实现用户信息数据包括和用户有关的数据的管理和操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。
c、输出用户基本信息和聊天内容d、输入用户根据自身需要,发起聊天e、安全保密方面的要求设置管理员2.2 目标该软件的设计目标必须尽量达到人力和设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。
2.3 条件、假定和限制a、本聊天室建议使用寿命为5-10年b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭2.4 进行可行性研究的方法成本效益分析、对估算问题的看法、软件的作用范围、软件的成本估算、速度安排3.对现有系统的分析3.1 处理流程和数据流程该系统的数据处理和流程基本为用户数据录入和查询,管理员删除等,流程图如下:用户管理图1.处理流图3.2 人员鉴于该系统的技术含量比较低,故不需要高技术人才。
Java聊天室系统程序设计实验报告

Java聊天室系统程序设计实验报告院(系):信息与通信工程系专业:计算机应用技术班级:学号:姓名:指导老师:2013/6/8目录第一部分:系统设计总述............................................................................1.设计目的:......................................................................................2.设计总体要求:..................................................................................3.实现目的:...................................................................................... 第二部分:系统需求分析............................................................................1.系统任务描述....................................................................................2.系统功能分析....................................................................................3.系统可行性分析.................................................................................. 第三部分:系统设计................................................................................1.系统总体结构设计................................................................................2.系统主体的处理流程..............................................................................3.系统流程逻辑.................................................................................... 第四部分:代码分析................................................................................1.服务器端部分代码................................................................................2.客户端部分代码.................................................................................. 第五部分:系统的具体实现..........................................................................界面设计.......................................................................................... 第六部分:小结.................................................................................... 第七部分:参考文献................................................................................ 第一部分:系统设计总述1.设计目的:1.在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计特性的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛科技大学操作系统课程设计学生班级计算机132班学生学号1308010204学生王永远______年___月___日2016 5 18目录设计题目:聊天室系统 (3)一、设计目的及要求 (3)1.1设计目的 (3)1.2设计要求: (3)二、技术背景 (3)2.1网络编程 (3)2.2网络通信 (3)2.3 Socket (3)2.4 TCP传输 (4)2.5 Java的多线程机制 (4)三、需求分析 (4)3.1客户端 (4)3.1.1登录 (4)3.1.2多人聊天 (4)3.1.3单人聊天 (5)3.2服务器端 (5)四、总体设计 (5)4.1设计思想流程图 (5)4.2设计思想分析 (6)五、详细设计 (6)5.1客户端设计 (7)5.1.1登录界面 (7)5.1.2聊天室界面 (7)5.1.3单人聊天界面 (7)5.2服务器端设计 (8)六、系统测试 (8)6.1登录测试 (8)6.1.1用户名为英文字母 (8)6.1.2用户名为中文 (9)6.1.3用户名为标点符号 (9)6.1.4多个用户有重名 (10)6.1.5服务器地址不合法 (11)6.1.6端口号不合法 (12)6.1.7服务器未开启 (12)6.2群发消息测试 (13)6.3私聊测试 (15)6.4用户列表显示测试 (16)七、心得体会 (16)八、参考资料 (16)九、程序清单 (16)设计题目:聊天室系统一、设计目的及要求1.1设计目的通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP 协议的Socket编程,掌握Java的多线程机制。
1.2设计要求:实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。
二、技术背景2.1网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。
2.2网络通信(1)IP地址:网络中设备的标识,不易记忆,可用主机名要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。
(2)端口号:用于标识进程的逻辑地址物理端口网卡口逻辑端口我们指的就是逻辑端口A:每个网络程序都会至少有一个逻辑端口B:用于标识进程的逻辑地址,不同进程的标识C:有效端口:0~65535,其中0~1024系统使用或保留端口。
(3)传输协议:通信的规则,常见的有UDP,TCPUDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。
TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。
2.3 Socket(1)Socket套接字网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
(2)Socket原理机制A:通信的两端都有Socket。
B:网络通信其实就是Socket间的通信。
C:数据在两个Socket间通过IO传输。
2.4 TCP传输(1)客户端思路A建立客户端的Socket服务,并明确要连接的服务器。
B如果连接建立成功,就表明,已经建立了数据传输的通道.就可以在该通道通过IO进行数据的读取和写入.该通道称为Socket流,Socket流中既有读取流,也有写入流.C通过Socket对象的方法,可以获取这两个流D通过流的对象可以对数据进行传输E如果传输数据完毕,关闭资源(2)服务器端思路A建立服务器端的socket服务,需要一个端口B服务端没有直接流的操作,而是通过accept方法获取客户端对象,在通过获取到的客户端对象的流和客户端进行通信C通过客户端的获取流对象的方法,读取数据或者写入数据D如果服务完成,需要关闭客户端,然后关闭服务器,但是,一般会关闭客户端,不会关闭服务器,因为服务端是一直提供服务的2.5 Java的多线程机制进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。
线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。
多进程是指操作系统能同时运行多个任务(程序),多线程是指在同一程序中有多个顺序流在执行。
在java中,每次程序运行至少启动2个线程。
一个是main线程,一个是垃圾收集线程。
因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,启动JVM实际上就是在操作系统中启动了一个进程。
在java中所有的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。
三、需求分析实现聊天的功能,采用Java Socket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,可将所有信息发往服务器端,再由服务器进行处理,服务器端是所有信息的中心。
3.1客户端3.1.1登录用户需要填写用户名、服务器地址、端口号才可以进入聊天室与在线用户聊天,此外,服务器地址默认是本机地址,端口号默认是5000。
用户名可以中文,英文字母或标点符号,服务器地址必须是符合点分十进制的合法地址,端口号可以修改,但服务器端程序默认端口号也必须修改。
该聊天室不需要注册,直接登录即可聊天,退出后,系统不保留用户任何信息。
若新登录用户与在线用户的用户名重名,则系统会自动修改用户名。
格式为:用户名+“_客户端线程ID”。
3.1.2多人聊天每个在线用户都可以发送聊天信息,服务器端会一直监听,并把每一个在线用户发送的聊天信息转发到每一个客户端。
聊天室的聊天信息格式为:用户名时间(yyyy-MM-dd HH:mm:ss)聊天信息3.1.3单人聊天用户可以选择某一个在线用户实现单人聊天,该聊天信息不会在聊天室显示,只有单聊的两个人能够看到。
单人聊天的聊天信息格式为:用户名时间(yyyy-MM-dd HH:mm)聊天信息3.2服务器端服务器端主要处理客户端的请求,包括用户的登录,发送多人聊天信息,退出聊天室,单人聊天请求,发送单人聊天信息,并且随时更新在线用户列表。
四、总体设计4.1设计思想流程图4.2设计思想分析首先启动服务器,它会建立一个专门用于接收客户端连接请求的“倾听Socket”,然后等待客户的连接请求。
当用户登录输入信息后,与服务器建立Socket连接,服务器端的“倾听Socket”收到连接请求后,会接受连接请求,并生成一个服务器端socket,专门负责与此客户端socket的通信。
一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相应的处理(如登录、私聊等)。
服务器端也可以根据需要,通过socket的输出流发送信息和请求给客户端。
客户端和服务器端都可以通过关闭本方的socket而结束一次通信过程。
对于客户端的各种请求,实际上都是通过在客户端发往服务器的各种字符流区分的,具体的方法就是在消息的部添加特殊字符串,从而实现服务器对消息请求的识别。
比如对于登陆信息,消息中添加的容就是“login”,而对于私聊中的消息,消息中添加的容就是“single”,其他的同理都添加了相应容。
当然,对于客户端来说,这些都是透明的,用户的操作并没有受到任何影响。
在服务器端,消息被检测分析后,变回根据具体的目的进行处理,比如是私聊消息,服务器便会根据其部添加的信息,向目标端转发该条消息,当目标端接收到连接请求后,会主动建立一个私聊窗口,从而实现私聊。
服务器端需要能同时接受多个用户的请求,为了实现这一点,一般使用多线程机制来处理,对每一个客户端连接通信,服务器端都有一个线程专门负责处理。
对于客户端的各种请求,部添加的信息分别如下:●clientThread客户端线程启动messages.add(clientThread.getId() + "clientThread");客户端线程ID●login登录客户端username+"login"+getThreadID()+"login"用户名+客户端线程ID●userlist用户列表ers.get(new Integer(threadID)) + "userlist"+threadID + "userlist"用户名+客户端线程ID●chat群聊username + "chat" + getThreadID() + "chat"+ mess + "chat"用户名+客户端线程ID+聊天信息●serverexit服务器退出serverThread.messages+"serverexit"●single单聊ername + "single" + client.getThreadID() + "single" +(int)client.clientuserid.get(index) + "single" + mess + "single";用户名+客户端线程ID+客户端线程ID+聊天信息●exit退出群聊username + "exit" + getThreadID() + "exit"用户名+客户端线程ID五、详细设计5.1客户端设计5.1.1登录界面5.1.2聊天室界面5.1.3单人聊天界面5.2服务器端设计六、系统测试6.1登录测试6.1.1用户名为英文字母6.1.2用户名为中文6.1.3用户名为标点符号6.1.4多个用户有重名6.1.5服务器地址不合法6.1.6端口号不合法6.1.7服务器未开启6.2群发消息测试6.3私聊测试6.4用户列表显示测试无论已经登录用户的退出,还是新用户成功登录,用户列表显示部分都能正确显示。
七、心得体会这段时间通过不断的修改,我终于把聊天室系统完成了,虽然它只有简单的聊天功能,但通过它,我不但巩固了以前学的知识,而且学到了许多在课堂中学不到的知识。
通过这次课程设计,我更坚定了理论与实际相结合是十分重要的想法,即使一个人读了再多的技术图书,但没有相关的实践经验,那么他也不会真正地掌握一门技术。
只有把理论知识与实践相结合,才会深入的了解并提高自己的独立思考能力。
通过这次的课程设计,我将自己所学的Java语言得到了实际的应用,在完成的过程中也遇到了许多困难,但通过不断地查阅资料,最终还是解决了,在这个过程中,我学会了独立思考,同时也让我明白完成一件事情要不断开阔视野,拓展知识面,解放自己的思维。