单与“聊天启动”标志
写入输出流
将消息转发给所有在线用户
结束
图2服务器模块流程图
13
否信息写入输出流
f该服务器界面用于显示用户上线与下线的信息,不可用于聊天,是用于将客户端群聊时发送的信息转发给每一个在线用户,处于一个承接的作用。
332登录模块设计
开始
显示客户端主界面
连接服务器
输入用户名,服务器IP
是否
点击确定
用户名是否为空是
是否为空是
IP是否为空是
用户名是否上线否
调用群聊函数
是是
显示群聊信息
结束
图3登录模块流程图
f用户登录需输入相关信息,经过相关的检测后,方可登录。登陆后可查看群聊信息,且可与其他人进行聊天322消息格式化模块
消息格式化是将用户的对应信息合成固定形式进行传送。
开始
对应用户传入消息格式化类
转发的消息
用户名
标志
消息格式化类
将信息整合成固定格式传送
“【用户名:】”转发的消息
结束图4消息格式化模块流程图
13
f323群聊模块用户登陆以后,可与显示在线的任何用户进行聊天,也可与在线用户一起进行群聊。
开始
创建套接字
写入服务器端口号与IP
向服务器发起连接
套接字中内容流入对象输出流
启动客户端线程
读取套接字中的内容
检查标志
聊天已启动
发送消息启动
在线用户列表添加该用户
服务器转发的信息显示到各用户聊天
窗口
结束
图5群聊模块程序流程图
f4源代码
客户端程序clie
tc
i
cludestdlibh
i
cludestdioh
i
cludeerr
oh
i
cludestri
gh
i
clude
etdbh
i
cludesystypesh
i
clude
eti
eti
h
i
cludesyssocketh
defi
eTRUE1
defi
ePORT5000
statici
tsockfd
voidrecvfromserver
接受服务器消息线程入口函数
charmes1024
i
t
bytes0
while1
memsetmes0sizeofmes
bytesreadsockfdmessizeofmes
if
bytes0
mes
bytes0
pri
tf