以下为所有剩余工作
writtenby: kejie leung
2005-10-6
//
1. 21:34 2005-10-8 (完成)添加好友:
(1) 向客户发送"我要加你"消息 ZSCQ_MSG_CC_ADDYOU,同时发送自己的 REG_STRU + ADDR_STRU
(2) 好友端确认
1) 确定加为好友,
返回 ZSCQ_MSG_CC_FAADMIT,同时发送自己的 REG_STRU + ADDR_STRU,
向数据库添加好友信息(好友资料,现时IP)
在主窗体的在线好友树中添加新好友结点
通知添加成功
2) 拒绝
返回 ZSCQ_MSG_CC_FAREFAUSE,同时发送自己的ZSCQ号
(3) 自己返回消息处理
1) 返回为 ZSCQ_MSG_CC_FAADMIT
向数据库添加好友信息(好友资料,现时IP)
在主窗体的在线好友树中添加新好友结点
通知添加成功
2) 返回为 ZSCQ_MSG_CC_FAREFAUSE
通知添加好友失败
2. 删除好友
(1)确认是否删除
1) 确认
从数据库中删除好友的相关数据
在主窗体的在线好友树中删除新好友结点
2) 取消
返回
3) 发送给好友消息 ZSCQ_MSG_CC_DELETEYOU + 自己的ZSCQ号
4) 通知删除成功
(2) 好友端接收到ZSCQ_MSG_CC_DELETEYOU消息(不用确认,直接删除)
1) 从数据库中删除好友的相关数据
2) 在主窗体的在线好友树中删除新好友结点
3. 10:31 2005-10-9 (完成)查找好友
(1) 向服务器发送 ZSCQ_MSG_CS_FINDFRIEND 消息 + 起始查找 ZSCQ号(如2000)
(2) 服务器接收到 ZSCQ_MSG_CS_FINDFRIEND 消息
1) 查找数据据,取出由起始号后10个用户信息数据,记于 REG_STRU*10中
2) 不足就发送查找到的所有组数
3) 数据包组成 1byte(REG_STRU count) + n* REG_STRU
4) 返回客户端 ZSCQ_MSG_SC_FINDFRIEND 消息和数据包
(3) 客户端接收到 ZSCQ_MSG_SC_FINDFRIEND 消息
1) 分离返回的数据,先读取返回有多少个REG_STRU于 m_rRegStru
2) 在查找好友列表中添回半显示
3) 如果 m_rRegStru < 10 表示再无可查好友,将下一页设为不可用
(4) 上一页,下一页 同样是发送ZSCQ_MSG_CS_FINDFRIEND 消息,只是查找起始号不同!!
1) 有一个变量记录当前发送的起如号 m_CurFindNum
2) 下一页时 m_CurFindNum += 10
3) 上一页时 m_CurFindNum -= 10
4) 如果 m_CurFindNum < 0, 则设回初值 m_CurFindNum = 20000, 将上一页设为不可用
4. 上线通知
(1) 读出所有在线好友IP
(2) 向每个好友发送一次 ZSCQ_MSG_CC_FRIENDONLINE 消息 + ADDR_STRU 数据包
(3) 好友收到 ZSCQ_MSG_CC_FRIENDONLINE 消息
1) 显示好友上线消息框
2) 加入上线好友IP到数据库
(4) 在主窗体的在线好友树中添加上线好友结点
5. 下线通知
(1) 读出所有在线好友IP
(2) 向每个好友发送一次 ZSCQ_MSG_CC_FRIENDOFFLINE 消息
(3) 好友收到 ZSCQ_MSG_CC_FRIENDOFFLINE 消息
1) 显示好友下线消息框
(4) 在主窗体的在线好友树中删除下线好友结点
(5) 向服务器发送 ZSCQ_MSG_CS_OFFLINE 消息 + 自己ZSCQ号码
1) 在在线好友列表中删除该用户
6. 服务器端的消息群发
(1) 读出所有在线好友IP
(2) 向每个好友发送一次 ZSCQ_MSG_SC_SERVERNEW 消息 + MSG
(3) 客户端接收到 ZSCQ_MSG_SC_SERVERNEW 消息
1) 显示有最新消息
2) 将消息加入有数据库
3) 在主窗体属性页第二页上添加该最新消息