聊天室系统设计报告

合集下载

Java聊天室程序设计报告

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结构是当前数据库应用程序中极为流行的一种方式。

尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。

另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。

设计聊天室实验报告

设计聊天室实验报告

设计性实验项目简介fgets( SERV_HOST_ADDR, MAX_LINE, fd);fscanf( fd, "%d", &SERV_TCP_PORT);fclose( fd);bzero( (char*)&serv_addr, sizeof( serv_addr));serv_addr.sin_family =AF_INET;serv_addr.sin_addr.s_addr =inet_addr( SERV_HOST_ADDR);serv_addr.sin_port =htons( SERV_TCP_PORT);if ( ( sockfd = socket( AF_INET,SOCK_STREAM,0))<0) {printf( "client:can`t open stream socker.\n");fflush( stdout);return( 0);}if ( connect( sockfd, ( struct sockaddr *)&serv_addr,sizeof( serv_addr))<0) {printf( "client:can`t connect to server\n");fflush( stdout);return( 0);}return( sockfd);}运行结果:服务器端运行结果,显示端口号并处于等待连接状态:群聊功能,四个客户端代表四个用户,通过服务器的转发实现通信。

显示所有的用户功能,通过发送“list”由客户端发送所有的用户名字。

私聊功能,通过“*”符号作为标识符实现两个用户之间的私有通信。

实验感悟本实验的私聊功能较为难实现,在老师和同学的帮助下经过一次次的验证和修改最终实现了该功能,最终本实验可以群聊也可以私聊。

本实验利用的是C语言编程,需要C语言和linux 网络编程基础,尤其对socket编程和C语言数组和指针的应用,锻炼了我们对两者的编程能力,在修改代码的过程中加深了我们对编程的理解。

mothzchat聊天室设计总报告

mothzchat聊天室设计总报告

重庆邮电大学《网络编程》课程结业报告课程结业选题:基于JAVA的聊天室系统学院名称:计算机科学与技术学院学生姓名:专业:计算机科学与技术班级:学号:指导教师:填表时间:2011 年 6 月摘要计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。

各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion等,都是做的比较成功的实时聊天工具。

随着网络的日益普及,各种聊天工具也层出不穷,要实现简单的网络通讯也就不再是个梦想。

接下来的设计就是针对一个简单的网络聊天程序,利用Myeclipse,Mysql实现一款聊天室软件的基本功能。

一般说来聊天室程序分为服务器端和客户端两部分,其核心部分是服务器端,在网络聊天程序中客户端一切核心功能都要依赖于服务器(如:依靠服务器转发聊天信息,通过服务器进行建立P2P连接进行文件传输),鉴于此本程序采用常见的c\s体系结构,即客户机/服务器体系结构,服务器专门用来监控用户状态和响应用户的请求。

本设计所完成的网络聊天室具有常用聊天室的所有功能,包括多人同时聊天、两人间的私密聊天、传送文件、播放多媒体文件、发布系统公告、还能显示用户列表。

同时,为了管理聊天室中的用户,设计了用户注册登陆功能、管理员删除普通用户的功能。

本文首先介绍了该系统的设计思路和需求分析,接着介绍了该系统的设计思路,功能设计,包括数据库的设计与创建;然后介绍本系统的计算模式和用到的相关技术;最后介绍本系统的具体实现。

关键词:聊天室系统c\s体系结构私聊在线用户前言随着电脑和互联网的普及,网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。

网络版的聊天软件种类繁多,如QQ、OICQ、MSN等,实现了随时随地上网聊天,给人们带来了很大的方便。

但是这些聊天软件也存在以下不足:用户必须连接Internet;用户再工作时容易沉迷于网络聊天。

聊天室程序设计报告

聊天室程序设计报告

实验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课程设计报告-聊天室程序设计模板

河海大学计算机及信息工程学院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要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。

这个实验中的客户机与服务器可以没有区别,即可以采用对等的模式,双方既可以是服务器也可以是客户机。

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

青岛科技大学操作系统课程设计学生班级计算机132班学生学号**********学生姓名王永远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用户列表显示测试无论已经登录用户的退出,还是新用户成功登录,用户列表显示部分都能正确显示。

七、心得体会这段时间通过不断的修改,我终于把聊天室系统完成了,虽然它只有简单的聊天功能,但通过它,我不但巩固了以前学的知识,而且学到了许多在课堂中学不到的知识。

通过这次课程设计,我更坚定了理论与实际相结合是十分重要的想法,即使一个人读了再多的技术图书,但没有相关的实践经验,那么他也不会真正地掌握一门技术。

只有把理论知识与实践相结合,才会深入的了解并提高自己的独立思考能力。

相关文档
最新文档