嵌入式系统工程师
IPMSG<飞鸽传书>协议简介
2
IPMSG协议简介
IPMSG可以用于收发消息和文件(夹)
使用UDP协议收发消息
使用TCP协议收发文件(夹)
默认使用2425端口作数据传输(TCP/UDP)
包含以下功能
用户上下线识别
消息收发
文件传输
文件夹传输
3
IPMSG协议简介
现行IPMSG为版本1
通信报文以字符串形式进行收发
基本格式如下
版本号:包编号:发送者姓名:发送者机器名:命令字:附
加信息
举例
1:1238605487:user:machine:32:hello
版本号固定为1
包编号一般为不重复的十进制数,通常可以由
time函数产生
发送者姓名和发送者机器名可以任意,但在整个
通信中必须保持一致
4
IPMSG协议简介
命令字
报文中的命令字是一个32位无符号整数
包含命令(最低字节)和选项(高三字节)两部分
常用基本命令(带有BR标识的为广播命令)
用户上线
用户退出
通报在线
发送消息
通报收到消息
IPMSG_BR_ENTRY
IPMSG_BR_EXIT
IPMSG_ANSENTRY
IPMSG_SENDMSG
IPMSG_RECVMSG
IPMSG_GETFILEDATA 请求通过TCP传输文件
IPMSG_RELEASEFILES 停止接收文件
IPMSG_GETDIRFILES 请求传输文件夹
5
IPMSG协议简介
命令字
常用选项
IPMSG_SENDCHECKOPT 传送检查(需要对方返回回执)
IPMSG_FILEATTACHOPT 传送文件选项
附加信息
附加信息的内容根据命令字的不同而不同
6
IPMSG协议简介
用户上下线识别
IPMSG启动时,向局域网广播IPMSG_BR_ENTRY
其他已在线用户向该新用户回复IPMSG_ANSENTRY
IPMSG退出时,向局域网广播IPMSG_BR_EXIT
用户列表的维护
ENTRY报文和ANSENTRY报文
添加用户到用户列表
EXIT报文
将用户从用户列表中删除
ENTRY报文中的附加信息为用户名
7
S1.向局域网广播“我来了”S2.各在线主机回答“我也在”
IPMSG协议简介
消息收发
包含IPMSG_SENDMSG命令的报文表示发送消息
消息内容放在附加信息的位置
附加IPMSG_SENDCHECKOPT选项表示需要对方发送回
执
如需回执,则发送IPMSG_RECVMSG报文
将对方的包编号
放在附加信息位置
8
SENDMSGSENDMSG | SENDCHECKOPTRECVMSG