优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

聊天室的设计与实现

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


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

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

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

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

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

4. 系统消息 SystemMsg.db
字段名 类型 长度 说明
ID 自动增值  主关键字
Time DataTime  发送时间
Msg Memo  消息内容
Memo Memo  备注 [资料来源:www.THINK58.com]

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

[来源:http://www.think58.com]

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

[版权所有:http://think58.com]

② ONL(用户上线)
格式:ONL*QQNumber*NickName*001*
(第二位为QQ号,第三位为“妮称”,第四位为“头像”ID)

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

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

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

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

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

⑤ HID(隐身)
格式:HID*QQNumber* [资料来源:http://THINK58.com]

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

[来源:http://www.think58.com]

  ⑦ IMO(I am online报告“我在线”)
     格式:IMO*QQNumber* [来源:http://www.think58.com]

  ⑧ FIN(Find friends 查找好友)
     格式:FIN*

[版权所有:http://think58.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.THINK58.com]

④ function Leave(s:string):Boolean;(用户离开)
收到离开信息后,先判断其是否为自身好友,若是,更改其头像。

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

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

⑥ function CreateDB:Boolean;(创建用户数据库)

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

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

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

2. 向所有好友发出上线通知,若有返回,则说明此发友在线,更改其图标

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


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

[版权所有:http://think58.com]