服务器接收到连接命令,就向其他用户发送加入命令告诉所有用户加入,然后把当前的全部用户信息返回给刚刚加入的用户,以便于该用户在界面上显示用户列表。当接收到退出命令后,就清除当前用户信息,然后向其他用户发送命令。这些用户的客户端会把离开的用户从用户列表中删除,然后就不能再与该用户进行通讯。
图3 聊天室服务器的数据接收流程图
3.3.2聊天室客户端的协议解析流程
聊天室客户端程序实现聊天协议解析的流程图如图4所示。从图中可以看出来,当客户端连接到聊天室服务器后,服务器立刻建立一个数据接收的独立线程。在接收线程中,如果接收到了聊天命令,就对其进行解析处理。聊天室客户端一共处理成功、错误、列表、添加、退出等命令。
当接收到退出命令后,客户端就将已经离开的用户从用户列表中清除。如果不是这几种命令,就表示普通的信息,需要把信息输出到界面上本文来自辣\文+论~文?网,
毕业论文 www.751com.cn 加7位QQ324~9114找原文。
图4 聊天室客户端的数据接收流程图
3.4系统实现
在定义了程序的功能和实现了系统设计后,下面将介绍如何编码实现一个介于socket的聊天室。系统的主要功能有用户显示,聊天系统消息等。下面分别介绍服务器端和客户端的实现方法。
3.4.1服务器端实现
NetServer.cs文件中包含了FormServer 类和 Client类,其中FormServer是实现聊天室服务器的主要类,它封装了聊天室服务器的基本操作。下面对服务器端实现代码进行介绍。
1、获得有效端口号和IP地址
获取IP地址,在启动聊天室服务器时,将用到。监听端口将通过函数实现。在函数中首先检查用户输入是否为空:如果为空就提示用户输入端口号;如果不为空,就继续检测用户输入是否合法。即通过SYSTEM.CONVERT.TOINT32(PORT)语句尝试把用户输入的端口号转换为整型值。如果输入的不是数字,例如包含了字符,就会产生异常这表示端口无效;如果用户输入正确,函数就会返回已转换为整型值的端口号,否则返回小于0的值。
上一页 [1] [2] [3] [4] [5]
C#网络聊天室系统设计与实现 第5页下载如图片无法显示或论文不完整,请联系qq752018766