平时工作需要,需要用到飞秋,但是找不到 mac 平台上的飞秋,所已想要做一个统一三个平台( mac os, linux, windows )的局域网通讯工具,兼容飞秋、飞鸽。
平台兼容顺序:
- mac os ( 开发中。。。 )
- linux
- windws
飞秋简介( 资料来自网络 )
飞秋是一款局域网聊天传送文件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快 ,操作简单的优点,同时具有QQ中的一些功能,是飞鸽的完善代替者,另外,飞秋支持语音,远程协助群聊天(不需要服务器),它参考了飞鸽传 书(FreeEIM)和QQ, 完全兼容飞鸽传书协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能。
-
飞秋启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息 ;已启动飞秋的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的 个人信息;从而双方都能建立起用户列表;
-
刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;
-
传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的 标志来判断对方是否收到信息;
-
用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识, 比如网卡地址等)删除对方的用户列表信息;
-
广域网无法直接使用广播方式,靠手工添加”局域网外广播列表”来建立相互的关系;
-
飞秋传送文件是使用TCP协议,端口2425;
IPMSG ( 资料来源于网络 )
本协议是由日本人Shirouzu Hiroaki (白水 启章)先生编写。它是基于TCP/IP端口的收发信息服务;飞鸽传书可以安装在任一使用TCP/IP协议 的操作系统上。在网络中完成了动态用户识别机制。所有飞鸽用户之间可以相互交换信息。飞鸽使用TCP/UDP端口(默认端口:2425)。 信息发送/接收使用UDP协议, 文件发送/接收使用TCP协议。
-
':'被用做分隔符。你不可以在用户名和主机名中使用这个分隔符。
-
如果用户/主机中含有':',请使用其他符号替换,例如';'.
-
windows 版飞秋采用的协议为 GBK, 接收和发送的时候都需要进行编码操作
飞秋在 IPMSG 协议上做了拓展,下面将会使用 Wireshark 逐步进行分析补充
让我们发送命令:1_lbt6_8#998#FeiX#0#0#0#4001#9:1523368691537:def:TINCHER:288:好
1_lbt6_8
是飞秋版本号, 998
表示等级, FeiX
表示对方资料, #0#0#0#4001#9
暂时不知道是啥意思
, 1523368691537
包序号,这里建议使用时间戳, 接下来 def
是用户名, TINCHER
是主机名, 288
是命令字,表示发送消息
发送成功之后接收方会回复命令:`1_lbt6_0#128#74E6E2152F9D#0#0#0#4001#9:1523394620:sayyid:DESKTOP-DDQ2SA7:33:2147483647
1_lbt6_0
是飞秋版本号, 128
表示等级, 74E6E2152F9D
表示对方资料, #0#0#0#4001#9
暂时不知道是啥意思
, 1523394620
包序号,这里建议使用时间戳, 接下来 sayyid
是用户名, DESKTOP-DDQ2SA7
是主机名, 33
是命令字,表示收到信息, 2147483647不知道啥意思
如果在大约1秒内没有收到回执,在接下来的时间会连续发送 4 条同样的信息。加上之前的一次,一共 5 次,如果都没响应,代表失败。
输入状态: 1_lbt6_0#128#74E6E2152F9D#0#0#0#4001#9:1523394673:sayyid:DESKTOP-DDQ2SA7:121:
1_lbt6_0
是飞秋版本号, 128
表示等级, 74E6E2152F9D
表示对方资料, #0#0#0#4001#9
暂时不知道是啥意思
, 1523394673
包序号,这里建议使用时间戳, 接下来 sayyid
是用户名, DESKTOP-DDQ2SA7
是主机名, 121
是命令字,表示输入中
停止输入状态: 1_lbt6_0#128#74E6E2152F9D#0#0#0#4001#9:1523394673:sayyid:DESKTOP-DDQ2SA7:122:
1_lbt6_0
是飞秋版本号, 128
表示等级, 74E6E2152F9D
表示对方资料, #0#0#0#4001#9
暂时不知道是啥意思
, 1523394673
包序号,这里建议使用时间戳, 接下来 sayyid
是用户名, DESKTOP-DDQ2SA7
是主机名, 122
是命令字,表示暂停输入
输入暂停后,大约两秒就会变成暂停输入状态
1_lbt6_0#128#74E6E2152F9D#0#0#0#4001#9:1523394677:sayyid:DESKTOP-DDQ2SA7:0:
1_lbt6_0#128#74E6E2152F9D#0#0#0#4001#9:1523394680:sayyid:DESKTOP-DDQ2SA7:6291457:sayyid