Skip to content

兼容 Mac OS、Windows、Linux 的局域网通讯工具

Notifications You must be signed in to change notification settings

blisssayyid/feiX

Repository files navigation

FeiX

平时工作需要,需要用到飞秋,但是找不到 mac 平台上的飞秋,所已想要做一个统一三个平台( mac os, linux, windows )的局域网通讯工具,兼容飞秋、飞鸽。

开发进度

平台兼容顺序:

  1. mac os ( 开发中。。。 )
  2. linux
  3. windws

注意:使用的时候不可以发射Wifi进行热点共享!!!

飞秋简介( 资料来自网络

飞秋是一款局域网聊天传送文件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快 ,操作简单的优点,同时具有QQ中的一些功能,是飞鸽的完善代替者,另外,飞秋支持语音,远程协助群聊天(不需要服务器),它参考了飞鸽传 书(FreeEIM)和QQ, 完全兼容飞鸽传书协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能。

  1. 飞秋启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息 ;已启动飞秋的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的 个人信息;从而双方都能建立起用户列表;

  2. 刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;

  3. 传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的 标志来判断对方是否收到信息;

  4. 用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识, 比如网卡地址等)删除对方的用户列表信息;

  5. 广域网无法直接使用广播方式,靠手工添加”局域网外广播列表”来建立相互的关系;

  6. 飞秋传送文件是使用TCP协议,端口2425;

IPMSG ( 资料来源于网络

本协议是由日本人Shirouzu Hiroaki (白水 启章)先生编写。它是基于TCP/IP端口的收发信息服务;飞鸽传书可以安装在任一使用TCP/IP协议 的操作系统上。在网络中完成了动态用户识别机制。所有飞鸽用户之间可以相互交换信息。飞鸽使用TCP/UDP端口(默认端口:2425)。 信息发送/接收使用UDP协议, 文件发送/接收使用TCP协议。

注意事项:

  1. ':'被用做分隔符。你不可以在用户名和主机名中使用这个分隔符。

  2. 如果用户/主机中含有':',请使用其他符号替换,例如';'.

  3. windows 版飞秋采用的协议为 GBK, 接收和发送的时候都需要进行编码操作

飞秋协议分析

飞秋在 IPMSG 协议上做了拓展,下面将会使用 Wireshark 逐步进行分析补充

1. 发送消息和成功回执

让我们发送命令: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 次,如果都没响应,代表失败。

2. 获取输入状态

输入状态: 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是命令字,表示暂停输入

输入暂停后,大约两秒就会变成暂停输入状态

3. 上线与下线

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

About

兼容 Mac OS、Windows、Linux 的局域网通讯工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published