使用 Java Swing 编写 IpChat, 基于 IP Messenger 协议,支持 IPv6

2022-04-05 18:05

 

最近一段时间居家办公,使用 Java Swing 编写 IpChat, 基于 IP Messenger 协议,支持 IPv6。可实现简单的文本信息传输,点对点直接通讯,无需中间服务器。

 

 

ipchat for windows 10/11,p2p messenger, support ipv4/ipv6

上图为 Windows 10 下运行截图。

目前实现了初步文本聊天功能。

 

此软件开发的初衷,是因为 原版 IP Messenger(日文/英文) 的机制, 是先通过广播,了解局域网内哪些电脑使用了 IP Messenger 且在运行中,基于 IPv4/IPv6 + 用户网名, 组织成一个"当前活动的朋友列表"。然后在此基础上,进行文本通讯。

ipmsg, support 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 网络框架,主要是为了方便编程、简化代码。此类工具软件,网络性能不是瓶颈。

 

ipchat for ubuntu,p2p messenger,support ipv4/ipv6

上图为 Ubuntu 20.04 下运行截图。

 

后续看情况,再决定是否发布 Android 移动手机版。

 

 

欢迎转载,转载请注明出处: https://www.zheguisoft.com/staff_blogs/jacklondon_chen/2022, 及 https://my.oschina.net/jacklondon/