- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MyIM系统分析
MyIM系统实现
目标:
完成基本通信功能
注册 登陆 添加好友 聊天 传送文件 查找用户 好友上下线通知
通信协议
消息:同步消息,异步消息
同步消息:登录消息,注册消息。
异步消息:文本聊天消息,文件传输消息,退出消息,好友上下线通知消息
消息的格式:消息头+消息体
消息头由消息总长、消息类型、消息接收者、消息的发送者四部分组成。
消息体包含说有要传达的信息。
通信协议分析
通信数据格式协议
消息数据类型定义
类型 说明 Byte 用于表示消息类型,一个字节的整数 Unsigned Integer 网络字节顺序 Octet String 定长字符串,不足在右边补齐二进制0 /0
消息类型
消息类型 标志值 描述 1 注册请求消息 0x01 客户端发送注册请求数据给服务器 2 注册应答消息 0x11 服务器返回注册结果 3 登录请求消息 0x02 客户端发送IM号码和密码的消息请求登录 4 登录应答消息 0x22 服务器返回的登录结果应答消息 5 在线好友列表消息 0x03 服务器发送给登录成功客户端的其他好友列表消息 6 好友上线消息 0x04 服务器发送通知某用户好友上线消息 7 好友下线消息 0x05 服务器发送通知某用户好友下线消息 8 聊天消息发送 0x06 客户端发给服务器或服务器发给某客户端的文本聊天消息 9 文件传送消息 0x07 客户端发给服务器,或服务器发给某客户端的文件数据传送消息 10 查找在线用户消息 0x08 客户端发给服务器查询在线用户的消息 11 查找在线用户应答 0x18 服务器应答客户端的查找消息结果 12 添加好友请求 0x09 客户端发给服务器请求加好友消息,或服务器发给被添加用户的加好友的请求消息 13 添加好友应答 0x19 服务器应答客户端加好友的结果 其他 待定 待定
消息整体结构规则
结构 说明 Message Head 消息头 所有消息公共的消息头 Message Body 消息体 各种消息的消息体不同
消息头规则
字段名 数据类型 字节数 描述 totalLen int 4 消息字节总长 包含消息头总长度 type byte 1 消息类型 dest int 4 消息目的地 消息发送给谁 src int 4 消息源 谁发送的消息
具体消息结构定义
注册消息体结构
字段 数据类型 长度 描述 nikeName Octet String 10 注册用户昵称 password Octet String 10 注册用户密码 注册的时候,消息头中的dest值为服务器的IM号码 注册应答消息体结构
字段 数据类型 长度 描述 state Octet String 10 服务器返回的注册结果应答,0为成功,消息头中的dest值为注册成功的IM号码;非0为注册失败。 登录请求消息体结构
字段 数据类型 长度 描述 pwd Octet String 消息总长减去消息头长度 登录用户的密码 登录应答消息体结构
字段 数据类型 长度 描述 state byte 1 0:成功 1:账号错误 2:IP验证失败
好友列表消息体结构
字段 数据类型 长度 描述 listCount byte 1 好友分组个数 ListCount listName Octet String 10 一个分组的名字 bodyCount byte 1 本组内有多少个用户 组内的bodyCount个好友 bodyNum int 4 组内一个好友的IM号 nikeName Octet String 10 好友昵称 如果有多组,后面的结构同 listCount个分组数据部分
聊天消息体结构
字段 数据类型 长度 描述 msgContent Octet String 消息总长减去消息头长度 聊天的消息内容
文件传送消息体结构
字段 数据类型 长度 描述 filename Octet String 10 传送的文件名字 fileData byte 总长-消息头长(13)-256 文件内容
查找在线用户应答消息体结构
字段 数据类型 长度 描述 userCount int 4 用户数量 userCount个用户数据 nikeName Octet String 10 一个用户的昵称 IMNum int 4 一个用户的IM号码 如果有userCount个用户,后面的结构相同
添加好友请求消息体结构
字段 数据类型 长度 描述 IMNum int 4 要添加的好友的IM号码 添加好友应答消息体结构
字段 数据类型 长度 描述 IMNum int 4 被添加的好友的I
您可能关注的文档
最近下载
- 华东师大版八年级数学上册《作一个角等于已知角》教案及教学反思.docx VIP
- 【真题】河南省2025年对口升学(语文、英语)考试真题卷 完整版2025.pdf VIP
- 中心吸氧装置出现故障的应急预案.pptx VIP
- 13.4.2作一个角等于已知角展示课件数学八年级上册.pptx VIP
- 梦幻西游手游科举乡试会试答案大全 乡试答题器.pdf VIP
- QB∕T 5617-2021 单层床通用技术条件 .pdf
- 设备采购与管理作业指导书(设备采购类).doc VIP
- 2022 ASHRAE Handbook Refrigeration. SI edition标准原版完整.docx
- 教职工请假单(部门存根)(模板).pdf VIP
- 学校篮球比赛报名表的表格打印模板文档.xlsx VIP
文档评论(0)