菜菜鸟,请教应用层协议设计
应用层协议设计
一,问题概述
设计一个即时通信软件的应用协议,并要求完成以下基本功能的协议设计
1,登陆功能。2,下载好友列表功能。3,添加好友功能。4,删除好友功能。5,加入黑名单功能。6,好友上线通知功能。7,好友ID查询,昵称查询功能。8,下载好友资料功能(包含照片)。
二,重要数据描述
UserID 32位无符号整型,4字节
NickName 变长ASCII字符串,最大255字节
Gender bool类型,1字节
Password 变长ASCII字符串,最大16字节
Photo 定长ASCII字符串,最大255字节,代表用户照片所在的磁盘路径
三,协议模式
用户PC <======> 服务器 <======> 数据库
四,协议设计
(一),登陆公共部分信息
1)Header: 0XFD 0XFD
2)标识/命令字 8位模式
3)消息包长度 16位模式
2,登陆请求
UserID 32位bit模式
Password 变长ASCII
Display mode 8位模式
3,登陆应答
登陆状态(成功,失败)8位
离线消息个数位模式8
离线消息内容(发送消息人的ID,时间,内容)
87654321
Header
标识/命令字
消息包长度
UserID
Password
Display mode
87654321
标识/命令字
消息包长度
登陆状态
离线消息个数
离线消息内容
(二),下载好友列表功能
1,公共部分信息
标识符/命令字32模式
消息包16位模式
下载好友列表请求
在登陆系统后,向服务器发送的第1条消息,请求获得登陆者的好友[UserID]
列表
UserID 32位bit模式
标识/命令字
消息包长度
UserID
下载好友列表应答
服务器返回登陆者的好友列表[好友个数,好友昵称,好友性别],若登陆者无好友则返回错误。
Status8位模式FriendID32位bit模式Sex
8位模式
Nickname16位模式
标识/命令字
消息包长度
Status
FriendID
Nickname
Friend
注:这是老师给的实验报告,本人从前没好好学,完全看不明白。现在想浪子回头,不知道有没有这个机会。有没有哪位大哥能帮帮我解决下这个问题,写个源代码让偶从中学习,学习,顺便把那该死的作业给交了,谢谢各位朋友!
[解决办法]
注:这是老师给的实验报告,本人从前没好好学,完全看不明白。现在想浪子回头,不知道有没有这个机会
想好好学,
就这个表现??
要求非常明确了嘛
跟着要求一步一步实现就是了。
[解决办法]
设计协议阿,没说要实现阿,找SIP/SIMPLE的RFC文档参考一下吧,要实现的话open source的也很多