【问题标题】:Is there a Java client that supports Telnet RFC2217 (to communicate with COM ports over a network connection)?是否有支持 Telnet RFC2217(通过网络连接与 COM 端口通信)的 Java 客户端?
【发布时间】:2011-03-11 05:11:35
【问题描述】:

这应该很简单,非常简单,但我很难做到。


问题
我正在寻找一个使用 RFC2217 协议进行通信的 Java 开源项目。我发现 Java RFC2217 终端服务器不缺,但我需要一个客户端。如果所有这些人都在编写服务器,那么一定有人编写了客户端!正确的?我只是在java中找不到一个


上下文
我们有一个硬件 (SeaLINK+16 Ultra),它物理连接到十几个串行设备,并接受 TCP 网络连接来控制它们。此设备与具有虚拟 COM 端口的服务器联网,我们的应用程序使用这些端口与这十几个设备进行通信。

基本上,我们的服务器最终将网络数据发送到此 SeaLINK 设备,此设备将 TCP 流量转换为 COM 数据,并通过串行将其传输到其连接的串行设备。服务器和 SeaLINK 设备使用 RFC2217 中指定的协议进行通信。

需要发送到这些串行设备的命令非常简单(Cisco IOS)。 “启用”、“写入内存”、“重新加载”等短字符串。

问题是,我们服务器上启用的虚拟 COM 端口需要在 Linux 中安装非常麻烦且不是跨平台的驱动程序。另外,我们的整个应用程序都是用 Java 编写的,所以如果我们能找到一个可以“使用 RFC2217”的 Java 网络包,我们就可以立即解决我们的问题,并且我们的应用程序不需要捆绑驱动程序。


总结
我需要做的就是将这些命令“包装”到符合 RFC2217 的 TCP 数据包中。在某个地方应该有一个 java 客户端,你向它提供一个命令字符串,它会打开一个套接字并以符合 RFC2217 的方式传输你的字符。

意思是,我不必在本地安装驱动程序或使用虚拟 COM 端口。我所要做的就是运行以下代码:

RFC2217Client magicJavaClient;

magicJavaClient.setServer("192.168.40.5");
magicJavaClient.setPort(4162);
magicJavaClient.connect();

magicJavaClient.send("enable");
magicJavaClient.send("write memory");    
magicJavaClient.close();

哎呀,我什至会满足于在本地创建虚拟 com 端口的东西——只要它都是 java 的。像 COM Redirector 这样的东西正是我所需要的,但它不在 Java 中。提前感谢您的任何建议!

更新
NVTCom 似乎是我正在寻找的基于 java 的 RFC2217 客户端类型,但它的文档记录非常差,几乎无法使用。那里还有其他客户吗?我们甚至会考虑商业解决方案。

【问题讨论】:

    标签: java network-programming serial-port network-protocols telnet


    【解决方案1】:

    【讨论】:

    • 谢谢!看起来它可能完全符合我的需要。它的文档记录很差,但源代码看起来还不错。我得等到下周回到办公室才能真正测试一下。谢谢。
    • 昨天试了一下,没用。它抱怨服务器不符合 RFC2217,这几乎肯定不是真的。文档和错误处理都很差,因此破译问题的唯一方法是单步执行代码。目前尚不清楚问题是什么。还有其他java客户端吗?
    • @gmale 这是我所知道的唯一一个。我想我看到了一些商业的。你可能想走那条路,至少你能得到支持。
    • @gmale - 您总是可以使用串行端口重定向器,然后使用 Javacomm 或 Java 的等效串行端口库与串行端口通信。
    • @Romain:这就是我们正在做的事情——我们正在使用 RxTx 打开和管理串行连接。 Serial Port Redirector 和类似程序的问题在于它们是 Windows 应用程序,我们只使用基于 Unix 的系统(RedHat 和 OS X)。我一直在使用 Tibbo——它是一个基于 linux 的串行端口“模拟器”,但我在安装驱动程序时遇到了很多问题,因为我不是 Linux 专家,而且我们的应用程序在虚拟机上运行,​​它使一切复杂化(我实际上是在提出另一个与我在努力中遇到的问题有关的问题)
    【解决方案2】:

    每个人都在谈论天气,但没有人对此做任何事情。 ——马克吐温

    我发现自己在同一条船上寻找 Java RFC 2217 客户端库,却找不到任何有用的东西。所以我决定试一试。

    查看我的新 jvser 项目,如果您发现任何错误或想加入这项工作,请告诉我。

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2010-10-21
      • 2021-09-06
      相关资源
      最近更新 更多