3

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

联系

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

解析

我假设返回的数据是 1920 个字符的字符串,因为 3278 屏幕是 80x24 个字符。我只需要将这些字符解析为适当的字段。我对 3270 协议的了解越多,这种情况似乎就越少 - 我在Jagacy 3270 Java 库的试用版提供的文档中读到,该协议中的属性在属性之前用字符“A”标记,而我的理解是有更多的字符表示其他因素,例如字段是否可编辑。

我有理由确定我的想法过于简单化了。以包含项目列表的屏幕为例 - 在 24 个可见行之一上按下特殊键可深入了解有关该行的更详细信息。

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

所以..

我目前无法访问 SNA 服务器,但有一些屏幕截图显示了我获得连接后终端的外观,因此将开始进行解析工作。有这么多假设,但对数据的样子却没有太多想法,我真的很难过。有没有人知道这些系统可以帮助我重回正轨?

4

2 回答 2

6

你在那里挑了一个问题的开膛手。3270 确实是一个非常复杂的协议。我不会费心去尝试实现它,这是一个愚蠢的差事,我是从痛苦的个人经历中说的。尝试查找 TN3270 (Telnet 32​​70) 客户端 API。

于 2010-07-06T03:27:01.747 回答
1

这可能不会具体回答您的问题,但是...

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

于 2010-07-19T21:25:10.080 回答