Вот что я делаю; она работает 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. Надеюсь, ваш пользователь привык к успеху, равному отображению сообщения «--- connection made ...», чтобы он знал, что у него проблемы, когда/если хост не отвечает.
И это точка мне нужно сделать: вы не подключали к терминалу (как описано выше), а при подключении к хоста. Этот хост может быть либо соединением VTAM, либо каким-то LPAR, обычно TSO или z/VM, иногда CICS или IMS, к которым приведет VTAM. У каждого типа хоста разные подсказки &, на которые может потребоваться тестирование, и иногда это содержимое отличается в зависимости от системы, к которой вы пытаетесь подключиться. Ваш скрипт становится «терминалом», в зависимости от того, что вы хотите показать своему пользователю.
Что вам нужно сделать дальше, зависит от того, с какой системой вы пытаетесь поговорить. Через VTAM? (Сначала нужно выбрать приложение VTAM?) В z/VM? TSO? Вы входите в систему или DIALING? Какое следующее нажатие клавиши/поле вы должны использовать, когда работаете с графическим терминалом x3270/c3270? Вы должны знать это, чтобы выбрать следующую команду.
Удачи вам!
X3270 - эмулятор терминала; пакет по умолчанию создает клиент терминала, аналогичный telnet или ssh, который вызывается командной строкой. В чем вы нуждаетесь? Вам нужно «скринировать экран»? – zarchasmpgmr
@zarchasmpgmr Мне нужно интегрировать s3270 в python с помощью py3270. Я пытаюсь подключить терминал к подключенному терминалу. См. Мое редактирование в оригинальной записи. – user2213551
К сожалению, я не работал с py3270. Я могу дать общие идеи отладки, например, что произойдет, если вы сделаете экран сохранения после каждой отправки?Кроме того, я могу выдать wait_for_field() после каждой отправки; вещи могут выйти из строя. – zarchasmpgmr