最近一段时间居家办公,使用 Java Swing 编写 IpChat, 基于 IP Messenger 协议,支持 IPv6。可实现简单的文本信息传输,点对点直接通讯,无需中间服务器。
上图为 Windows 10 下运行截图。
目前实现了初步文本聊天功能。
此软件开发的初衷,是因为 原版 IP Messenger(日文/英文) 的机制, 是先通过广播,了解局域网内哪些电脑使用了 IP Messenger 且在运行中,基于 IPv4/IPv6 + 用户网名, 组织成一个"当前活动的朋友列表"。然后在此基础上,进行文本通讯。
在 IPv6 的网络情况下,这种广播包,有可能被路由器阻断,发不出去。
IP Messenger 对于向离线用户发文本消息,采取"等待检测到对方上线状态后,再发送"的策略。导致在 IPv6 网络下,工作不太正常(一直检测不到对方上线的状态)。
此次开发的 IpChat 软件,主要设计思路是:
a)基于 IP Messenger 的通讯协议;
b)去掉"当前活动的朋友列表",增加"我的好友列表";
c)发送消息时,不检测对方的在线状态,直接"点对点"发送,发送失败后有一定次数的自动重发;
目前可在 Windows 10, 11, Ubuntu 20.04,Debian GNU/Linux 11.1 上运行。
使用了 Apache Mina 网络框架,主要是为了方便编程、简化代码。此类工具软件,网络性能不是瓶颈。
上图为 Ubuntu 20.04 下运行截图。
后续看情况,再决定是否发布 Android 移动手机版。