我想知道是否有人有使用3270协议检索数据的经验。到目前为止我的理解是:
连接
我需要使用telnet连接到SNA服务器,发出一个命令,然后会返回一些数据。我不确定这个连接是如何建立的,因为我读到过标准的telnet连接不能工作。我还读到IBM有一个库可以提供帮助,但还没有找到更多关于它的信息。
解析
我假设返回的数据是一个1920个字符的字符串,因为3278屏幕是80x24个字符。我只需要将这些字符解析成适当的字段即可。我对3270协议的了解越多,这种情况似乎就越少-我在Jagacy 3270 Java library试用版提供的文档中看到,在协议中,属性在属性之前用字符'A‘标记,我的理解是,有更多的字符表示其他因素,例如字段是否可编辑。
我相当确定我的想法过于简单了。举个例子,比如一个包含项目列表的屏幕--在24个可见行中的一个行上按下一个特殊键,就可以深入了解关于该行的更详细信息。
另外,有人建议我可以发出打印命令。这有一些积极的含义-如果返回的字符串的格式不是1920,因为它包含这些字符,例如表示用户如何与终端交互的'A‘,则打印将消除这些字符。此外,它还可以避免对大量数据进行分页。另一方面,我不知道如何将print命令中的数据检索回Java。
所以..。
我目前不能访问SNA服务器,但有一些屏幕截图,一旦我获得连接,终端将是什么样子,因此我将开始解析工作。有这么多的假设,对数据看起来会是什么样子没有太多的想法,我真的感到困惑。有没有人对这些系统有任何了解,可以帮助我回到正轨?
发布于 2010-07-06 11:27:02
你已经选择了一个问题的开膛手。3270确实是一个非常复杂的协议。我不会费心去实现它,这是愚蠢的差事,而且我是从痛苦的个人经历中说出来的。尝试查找TN3270 (Telnet 3270)客户端应用编程接口。
发布于 2010-07-20 05:25:10
这可能没有具体回答您的问题,但是...
如果您正在使用Rational Developer for z/OS,那么您的java代码应该能够使用集成的HATS产品来处理3270流。它可能不适合你的项目,但我想我会提到它,如果你想做的只是一些简单的屏幕抓取,它会让事情变得非常简单。
https://stackoverflow.com/questions/3181474
复制相似问题