软件设计大赛作品说明书
新
苑
聊
天
室
设
计
说
明
设计人班级:06473
设计人姓名:邢振雨
作品简介
本作品是为了锻炼自己能力及参加软件设计大赛而设计的,目的是为了给大家提供一个相互交流的平台,力求简洁实用,注重效率。本程序提供了上线下线自动通知,悄悄话,用户管理,屏蔽发言等基本功能。
需求分析
经过深入研究,一个好的聊天室软件,至少需要实现以下功能:
客户端:可以登陆,正常聊天,发送多媒体信息,悄悄话,屏蔽发言,获知在线用户列表,管理员可以对用户进行授权、踢人等操作,最好有视频音频功能。
服务器端:能够应对较大的数据流量,性能稳定,随时获得聊天室状态,控制用户连接等功能。
由于时间仓促以及经验不足,所以我去掉了一些相对不太重要的功能,比如发送多媒体信息、视频音频等,另外计划内的一个一发多收的文件传送功能也没有加上,虽然有些遗憾,但是程序还是具有了聊天室的基本功能。
在程序设计时,考虑到设计此程序的主要目的是锻炼自己,也为了增加程序灵活性,所以我没有使用封装的tcpclient等类,而是完全用socket套接字手工实现,后台数据操作也没有使用backgroudworker,而是手工操作线程,在解决跨线程操作问题时,自己学到了不少东西。
我的设计思路为:
服务器端确定最大连接数后,开始监听客户端连接,客户端确定服务器ip和端口号后,输入昵称连接服务器,将昵称发送到服务器,服务器将在线用户列表返回,客户端接收到列表后将列表添加到列表框中,进入接收循环。同时服务器端将该昵称加特殊标记发送给其他在线用户,客户端识别出标记后,将该昵称添加到列表框中。登陆成功以后,可以选择对谁说,以及悄悄话,另外本程序服务器端也可以参与聊天,当某用户退出以后,服务器获得该用户标示,将该
标示加特殊标记发送其他在线用户,客户端接收到该消息并识别出标记后,刷新在线用户列表,并在窗口上显示提示信息。服务器端随时显示最大连接数及在线用户数,由于本程序没有提供用户名及密码登陆,所以将对用户的控制功能交给了服务器端,在服务器端双击用户昵称,就可以将该用户踢下线。而在客户端双击用户昵称可以屏蔽该用户的发言,再次双击可以解除。另外,一时兴起,留了个后门,即无法屏蔽别人对自己的悄悄话。
客户端主要发送代码:
private void sends_Click(object sender, EventArgs e)
{
try
{
Byte[] mess = new Byte[1024];
if ()//悄悄话
{
mess = ("@***@only@@" + + "[悄]" + + "对你说:" + );
}
else
{
mess = ( + "对" + + "说" + ":\r\n" + );
}
(mess, 0, ,
软件设计大赛作说明书 来自淘豆网m.daumloan.com转载请标明出处.