c#异步聊天程序演示说明书.docx
《c#异步聊天程序演示说明书.docx》由会员分享,可在线阅读,更多相关《c#异步聊天程序演示说明书.docx(13页珍藏版)》请在冰豆网上搜索。
c#异步聊天程序演示说明书
异步聊天工具设计说明书
一、演示效果
1、聊天服务器启动后的状态
2、客户端登陆界面(演示三个用户同时在线)
二、软件设计和使用说明(注意由于时间仓促,上面的演示只是已经实现了的功能,而下面的文档还是按完整的设计思路写的)
1需求分析(实现简单的功能)
(1)用户可以注册新用户
(2)用户可以用注册成功的用户名和密码登陆系统
(3)用户注册的帐号密码可以自动保存
(4)用户可以修改自己的密码
(5)多个用户之间可以进行群聊
(6)用户可以查看到所有在线好友
(7)用户可以点击好友昵称进行一对一私聊
(8)用户可以清空聊天窗口中的消息
2概要设计
2.1系统总体结构
2.2网络聊天系统模块设计
2.2.1用户上下线信息显示模块
服务器开启8888端口用于监听,有用户请求连接时,通过套接字获取客户端ip地址,从而显示在线用户信息;当用户下线时,连接异常抛出,处理异常,显示下线信息。
2.2.2转发信息模块
服务器定义数组用于存储要求请求连接用户的端口号以及该端口客户发送的信息,该数组服务器、客户端共享,客户端读取该信息,从而实现信息转发。
2.2.3用户注册模块
通过与数据库连接,用户输入用户名、密码,若通过合法性检测,则将该用户注册的信息写入后台数据库。
2.2.4修改密码模块
用户输入用户名、旧密码、新密码,若通过合法性检测,则把修改后的信息重新写入后台数据库。
2.2.5用户登录模块
用户输入用户名、密码以及服务器ip地址,如果通过合法性检测则进入聊天主界面。
2.2.6群聊模块
客户端点击“发送信息”按钮,该客户端的ip地址、端口号以及信息内容一起打包写入服务器的相应数组,客户端通过线程可以读取该数组中的内容,从而实现群聊。
2.2.7私聊模块
客户端用户点击“开始私聊”按钮,输入对方的昵称以及ip地址,从而该用户开启端口用于监听,同时定义输入、输出流文件,客户端延迟片刻,然后与该端口取得连接。
当任意一方点击“发送信息”按钮时,和群聊同一机理,通过读取共享文件内容实现私聊。
3详细设计
3.1服务器
说明:
(1)服务器界面仅显示用户上线与下线的信息。
(2)程序运行过程中,服务器首先创建套接字Socket和ServerSocket,开设本地端口。
ServerSocket用于监听用户连接请求,当请求到达后,服务器接受连接请求,返回一个新的对应于此次连接的套接字,该套接字用于和客户端进行通信,而原来的套接字则返回等待另一客户请求。
(3)服务器不可用于聊天,只用于将客户端群聊时发送的信息转发给每一个在线用户。
3.2客户端
3.2.1客户端整体设计
说明:
(1)运行时,应先建立数据源,再建立用户名数据库,用来存放用户信息。
(2)客户端界面启动后,点击相应按钮,实现相应功能。
3.2.2登录模块设计
说明:
进入客户端主界面后,填写用户名、密码、IP,进行合法性验证,若通过验证,即可进入群聊界面进行群聊。
同时,右侧在线好友列表显示当前在线好友昵称,服务器界面显示当前IP地址的用户在线。
3.2.3修改模块设计
说明:
用户进入客户端主界面后,点击修改即可修改密码。
正确输入各项信息,即可成功修改密码。
点击取消,回到客户端主界面。
3.2.4注册模块设计
说明:
用户进入客户端主界面后,选择注册按钮,若用户名、密码长度不超过10位,并且全为数字和字母组成则连接数据库,检查该用户是否已经存在,若不存在,则注册成功信息录入数据库。
点击返回按钮,返回客户端主界面。
3.2.5消息格式化模块
说明:
消息在整个传递过程中都遵循特定的格式,对象输入输出流中的信息的传输格式由消息格式化类决定,同时消息格式化类将消息整合,固定成特定的格式显示到用户的聊天窗口中。
3.2.6群聊模块
说明:
群聊时,客户端点击主界面发送消息按钮,信息写入对象输出流,经过套接字传输至服务器,服务器将消息格式化后转发给各个在线用户。
3.2.7私聊模块
(1)私聊模块中的客户端模块
说明:
私聊时,发起方作为客户端,好友作为服务器,发起方等待服务器先启动,服务器启动后,发起方开始连接,连接成功后开始传送消息。
(2)私聊模块中服务器端模块
说明:
私聊时,接受方作为服务器,开启本地端口用于监听连接,当有连接时,进行私聊,读取消息并发送。