代码之家  ›  专栏  ›  技术社区  ›  James

用Java解析IBM 3270数据

  •  3
  • James  · 技术社区  · 14 年前

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

    连接

    我需要使用telnet连接到一个SNA服务器,发出一个命令,然后返回一些数据。我不知道这个连接是怎么建立的,因为我已经读到标准的telnet连接不起作用。我还读到IBM有一个库可以帮助您,但还没有找到更多关于它的信息。

    句法分析

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

    我相当肯定我的想法过于简单化了。举个例子,比如屏幕上有一个项目列表——在24个可见行中的一个上按一个特殊键,可以深入了解关于该行的更详细的信息。

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

    所以…

    我目前没有访问SNA服务器的权限,但是有一些屏幕截图显示了一旦我建立了连接,终端将是什么样子的,因此我将开始解析工作。有了这么多的假设,我对数据看起来会是什么感觉不太清楚,我真的感到很困惑。有没有人知道这些系统可以帮助我回到正轨?

    2 回复  |  直到 9 年前
        1
  •  6
  •   user207421    14 年前

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

        2
  •  1
  •   Joe Zitzelberger    14 年前

    这也许不能明确回答你的问题,但是…

    如果您正在使用Rational开发者为Z/OS,您的Java代码应该能够使用集成的HATS产品来处理3270流。它可能不适合您的项目,但我想我会提到它,如果您所要做的只是一些简单的屏幕抓取,它使事情非常容易。