Open Nav

聊天室的设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.仅供学习参考之用.
   帮助中心
资料介绍:


田鸡聊天器
一、 登陆问题
用户登陆时只用其用户ID(即妮称),QQ号对用户不透明。 [资料来源:Doc163.com]

二、 数据库设计
1. 用户列表User.db
该数据库主要存储本机上的用户ID和密码
字段设计:
字段名 类型 长度 说明
ID Integer 12 QQ号码
Username String 20 用户名(即妮称)
Password String 16 密码
Memo Memo  备注

[资料来源:https://www.doc163.com]

2. 好友信息 Friends.db
该数据库主要存储用户好友的相关信息
字段设计:
字段名 类型 长度 说明
ID Integer 12 QQ号码
Username String 20 用户名(即妮称)
FaceID Integer 100 用户头像序列
IsBaddy Boolean  是否被列入黑名单
Memo Memo  备注 [资料来源:https://www.doc163.com]

3. 聊天记录ChatLog.db
存储与好友之间的聊天记录
字段名 类型 长度 说明
ID Integer 12 QQ号码
Username String 20 用户名(即妮称)
Sender Boolean  消息发送者
Time DataTime  消息发送时间
Msg Memo  消息内容
Memo Memo  备注 [资料来源:Doc163.com]

4. 系统消息 SystemMsg.db
字段名 类型 长度 说明
ID 自动增值  主关键字
Time DataTime  发送时间
Msg Memo  消息内容
Memo Memo  备注

[资料来源:http://www.doc163.com]

三、通讯协议
1.统一规定
   所有协议前三位均为固定格式,取值如下:
值 SYS ONL OFF LEA HID MSG IMO FIN YFM
含义 系统信息 上线 下线 离开 隐身 正常信息 我在线 找好友 返回“找到”信息

[资料来源:https://www.doc163.com]

2. 具体协议内容
① SYS(系统信息)
格式:SYS*XXXX(xxxx为消息的具体内容)*

[资料来源:http://doc163.com]

② ONL(用户上线)
格式:ONL*QQNumber*NickName*001*
(第二位为QQ号,第三位为“妮称”,第四位为“头像”ID) [资料来源:Doc163.com]

③ OFF(用户下线)
格式:OFF*QQNumber*

[资料来源:https://www.doc163.com]

④ LEA(用户离开)
格式:LEA*QQNumber*

[资料来源:http://Doc163.com]

⑤ HID(隐身)
格式:HID*QQNumber*

[来源:http://Doc163.com]

⑥ MSG(正常信息)
格式:MSG*QQNumber*NickName*001*XXXXXXX*

[资料来源:http://www.doc163.com]

  ⑦ IMO(I am online报告“我在线”)
     格式:IMO*QQNumber* [资料来源:Doc163.com]

  ⑧ FIN(Find friends 查找好友)
     格式:FIN* [资料来源:https://www.doc163.com]

  ⑨YFM (You find me 你找到我啦) 收到FIN后,返回此信息
    格式: YFM*sQQNumber*sUserName*iFaceID*
四.程序主要模块
 1.主要处理函数、过程
    ① function SysMsg(s:string):Boolean;(系统消息)
A) 显示消息内容
B) 存储消息内容
② function Online(s:string):Boolean;(用户上线)
A) 将消息分离成三份,存储在三组数组Msg中
B) 在数据库中对照QQNumber,是否有此好友,若有则先判断好友是否更改其个人信息,更改则更新数据库后添加好友图标;若无,不作处理。
③ function Offiline(s:string):Boolean;(用户下线)
收到信息下线信息后,判断此用户是否为在线好友,若是,更改其头像颜色。
(若用户隐身,则作同样处理) [来源:http://www.doc163.com]

④ function Leave(s:string):Boolean;(用户离开)
收到离开信息后,先判断其是否为自身好友,若是,更改其头像。 [来源:http://www.doc163.com]

⑤ function Message(s:string):Boolean;(正常信息)
A) 将信息分离
B) 显示信息
C) 判断好友是否更改其个人信息,若更改,则更新数据库。

[资料来源:http://www.doc163.com]

⑥ function CreateDB:Boolean;(创建用户数据库) [来源:http://www.doc163.com]

2.二级函数
   ①function CheckUserInfo(QQNumber,FaceID:integer,NickName,IP:string):Boolean;
  用来检测用户信息是是否更改,若是,更新数据库。

[资料来源:http://doc163.com]

五、程序启动时的处理
1. 加载好友
读取数据库,将其中所有的好友均读出,添加好友图标 [资料来源:https://www.doc163.com]

2. 向所有好友发出上线通知,若有返回,则说明此发友在线,更改其图标 [资料来源:http://doc163.com]


临时思路:
1.在FrmMsg上设置一数组,存储收到的多条消息,再放置一个BtnNext按钮来陆续显示多条信息
[来源:http://www.doc163.com]

  • 关于资料
    提供的资料属本站所有,真实可靠,确保下载的内容与网页资料介绍一致.
  • 如何下载
    提供下载链接或发送至您的邮箱,资料可重复发送,若未收到请联系客服.
  • 疑难帮助
    下载后提供一定的帮助,收到资料后若有疑难问题,可联系客服提供帮助.
  • 关于服务
    确保下载的资料和介绍一致,如核实与资料介绍不符,可申请售后.
  • 资料仅供参考和学习交流之用,请勿做其他非法用途,转载必究,如有侵犯您的权利或有损您的利益,请联系本站,经查实我们会立即进行修正! 版权所有,严禁转载
    doc163.com Copyright © 2012-2024 苏ICP备2021029856号-4