在java中解析IBM 3270数据

时间:2010-07-05 18:25:42

标签: java telnet mainframe 3270

我想知道是否有人有使用3270协议检索数据的经验。到目前为止,我的理解是:

连接

我需要使用telnet连接到SNA服务器,发出命令,然后返回一些数据。我不确定这个连接是如何建立的,因为我读过标准的telnet连接不起作用。我还读到IBM有一个库可以提供帮助,但没有找到更多关于它的文章。

解析

我假设返回的数据是一个1920字符的字符串,因为3278屏幕是80x24字符。我只需要将这些字符解析到适当的字段中。关于3270 protcol的阅读越多,情况就越少 - 我在提供的Jagacy 3270 Java library试验文件中读到了属性在协议中标记的属性和属性之前的字符'A'我的理解是,有更多的字符表示其他因素,例如字段是否可编辑。

我有理由相信我的想法太简单了。举个例子来看一个包含项目列表的屏幕 - 在24个可见行中的一个上按一个特殊键,向下钻取有关该行的更详细信息。

还有人向我建议可以发出打印命令。这有一些积极的影响 - 如果返回的字符串的格式不是1920,因为它包含这些字符,例如'A'表示用户如何与终端交互,打印将根除这些。此外,它将不再需要翻阅大量数据。另一方面,我不知道如何将打印命令中的数据检索回Java。

所以..

我目前无法访问SNA服务器,但有一些屏幕截图显示终端在获得连接后的样子,因此将开始解析。有这么多的假设,而不是很多关于数据看起来像什么的想法,我感到非常难过。有没有人知道这些系统可能会帮助我回到正轨?

2 个答案:

答案 0 :(得分:6)

你选择了一个问题的开膛手。 3270确实是一个非常复杂的协议。我不打算尝试实施它,这是一个愚蠢的差事,我说的是痛苦的个人经历。尝试找到TN3270(Telnet 32​​70)客户端API。

答案 1 :(得分:1)

这可能没有具体回答你的问题,但是......

如果您使用的是Rational Developer for z / OS,那么您的Java代码应该能够使用集成的HATS产品来处理3270流。它可能不适合你的项目,但我想我会提到它,如果你要做的只是一些简单的屏幕抓取,它使事情变得非常容易。