【问题标题】:X3270 Connection and ProgrammingX3270 连接和编程
【发布时间】:2013-08-05 22:09:38
【问题描述】:

我正在考虑使用 X3270 终端仿真器。我让http://x3270.bgp.nu/ 查看了此源材料,但仍然不知道如何开始使用该工具或对其进行配置。

我想知道如何打开终端并进行连接。另一个问题是如何将其集成到 python 程序中?

编辑: 这是一个sn-p:

em = Emulator()     
em.connect(ip)
em.send_string('*user name*')
em.exec_command('Tab')
em.send_string('*user password*')
em.send_enter()
em.send_enter()
em.wait_for_field()
em.save_screen("{0}screenshot".format(*path*))

查看保存屏幕我看到光标没有移动?我可以使用

移动光标
em.move_to(7,53)

但在那之后我没有收到任何发送的文本。 有什么想法吗?

【问题讨论】:

  • X3270 是一个终端仿真器;默认包构建一个类似于 telnet 或 ssh 的终端客户端,由命令行调用。你的需求是什么?需要“屏刮”吗?
  • @zarchasmpgmr 我需要使用 py3270 将 s3270 集成到 python 中。我正在尝试让终端登录到连接的终端。在原始帖子中查看我的编辑。
  • 不幸的是我没有使用 py3270。我可以给出一般的调试思路,比如如果你在每次发送后做一个保存屏幕会发生什么?另外,我可能会在每次发送后发出 wait_for_field() ;事情可能会乱七八糟。

标签: linux python-2.7 terminal-emulator 3270


【解决方案1】:

这就是我的工作;它 100% 的时间都有效:

from py3270 import *
import sys, os

host = "%s" % sys.argv[1].upper()
try:
    e = Emulator()
    e.connect(host)
    e.wait_for_field()
except WaitError:
    print "py3270.connect(%s) failed" % (host)
    sys.exit(1)

print "--- connection made to %s ---" % (host)`

如果您的主机没有网络连接,则 wait_for_field() 调用将等待整整 120 秒。无论我做什么,我似乎都无法影响超时的长度。

但是您的用户不必等待那么久,只需让他使用 KeyboardInterrupt 终止您的脚本即可。希望您的用户会习惯于显示“--- 建立连接...”消息的成功,这样当/如果主机没有响应时,他就会知道他遇到了麻烦。

这是我需要说明的一点:您不连接到终端(如您所述),而是连接到主机。该主机可以是 VTAM 连接,也可以是某种 LPAR,通常是 TSO 或 z/VM,有时是 CICS 或 IMS,VTAM 会将您带到那里。每种主机都有不同的提示和屏幕内容,您可能需要对其进行测试,有时这些内容会有所不同,具体取决于您尝试连接的系统。您的脚本将成为“终端”,具体取决于您要向用户展示的内容。

您接下来需要做什么取决于您尝试与之交谈的系统类型。通过VTAM? (需要先选择一个 VTAM 应用程序?)到 z/VM? TSO?您是登录还是拨号?当您使用图形 x3270/c3270 终端时,您必须使用的下一个按键/字段是什么?您需要知道这一点才能选择下一个命令。

祝你好运!

【讨论】:

  • 你能连接到 ibm power7 系统吗?
【解决方案2】:

请先阅读我上面的评论 - 了解更多关于您需要做什么的详细信息会很有帮助。

在考虑之后……你看过https://pypi.python.org/pypi/py3270/0.1.5 的py3270 包了吗?摘要说它与 x3270 对话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2013-08-16
    相关资源
    最近更新 更多