一、系统概要
该聊天程序分为服务器和客户端两个部分。
客户端实现有以下功能:
1、向在线成员发送消息并接受消息。
2、更新成员状态,当其他成员上线或者下线是,客户端及时更新该成员状
态。
3、更新成员列表,当新成员加入或者有成员被删除时,客户端及时更新成
员列表。
4、当对方不在线时,可以向该成员发送离线消息。
5、当用户上线时,接收其他用户发送的离线消息。
6、保存聊天记录。
7、查询已注册用户。
服务器实现以下功能:
1、维护聊天室成员列表,包括接受新成员,删除已有成员。
2、通知客户端更新成员状态,当用户上线或者下线时,及时客户端更新成
员状态。
3、通知客户端更新成员状态,当有新用户加入或者成员被删除时,通知客
户端更新成员列表。
4、为离线客户端保存聊天记录。
5、验证密码,当用户登录时,密码错误给出提示。
6、禁止已登录用户,再次登录。
7、保存用户信息。
8、为用户保存离线消息。
客户端启动时登录服务器,如果用户为非注册用户则服务器自动为该用户注
册信息。注册信息包括该用户的名称和密码等。以后该用户需要使用注册名称密
码登录服务器。服务器以用户名称作为每个用户的惟一标识。用户注册后,服务
器向该用户发送用户列表。
注册用户登录服务器时,如果输入密码正确,则服务器请向该用户发送用户
列表。如果服务器验证该用户输入密码错误,则通知该用户重新登录。
当某个成员上线或者下线时,服务器通知在线成员更新该用户状态。
当某个成员希望与另外一成员交流时,如果另外那个成员在线则可以其发送
消息并接收回答。
当某个成员希望与另外一成员交流时,如果另外那个成员不在线则可以向其
发送离线消息。当对方上线时将自动收到离线通知。
二、通信规范的制定
该聊天程序服务器使用 MFC 的 CSocket 类派生类,作为与客户端进行数据
通信的编程接口。CSocket 类是 MFC 的 CAsyncSocket 类派生类,是更高层次的
易用的编程接口。CAsyncSocket 类是对 Windows Sockets API 的封装。通信规程
是基于 TCP/IP 的。
CSocket 类与 CSocketFile 类和 CArchive 类协同工作,发送和接收数据。