2

这应该很简单,很简单,但是我很难用它。是否有支持Telnet RFC2217(通过网络连接与COM端口通信)的Java客户端?


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


语境
我们有一个硬件(SeaLINK+16 Ultra)的该真实物理地连接到一打串行设备和接受TCP的网络连接来控制它们。该设备与具有虚拟COM端口的服务器联网,我们的应用程序使用该虚拟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客户端的我正在寻找的类型,但它是如此糟糕记录,它几乎无法使用。那里有其他客户吗?我们甚至会考虑商业解决方案。

回答

2
+0

谢谢!看起来它可能正是我所需要的。它的记录很差,但源代码看起来没问题。我必须等到下周我回到办公室才能真正测试一下。谢谢。 – gMale 2010-07-03 01:23:21

+0

昨天给了这个试试,它没有奏效。它抱怨说服务器不符合RFC2217,这几乎肯定是不正确的。文档和错误处理都很差,因此解决问题的唯一方法是单步执行代码。目前尚不清楚问题是什么。有其他的Java客户端吗? – gMale 2010-07-07 14:45:46

+0

@gmale这是我所知道的唯一一个。我想我看到了一些商业的。你可能想要走这条路,至少你会得到支持。 – 2010-07-07 14:52:42

0

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

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

看看我的新jvser项目,让我知道如果你发现任何错误或想加入努力。