Openedge использует имя службы Windows для подключения к порту - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь написать программу, которая будет проверять порт Linux, чтобы узнать, слушает ли он.Программа работает на компьютере с Windows, и номер порта может быть переменным, в зависимости от выбранной службы.Мне нужно найти номер порта, используя файл службы Windows.Ниже моя процедура:

define input parameter ip-network-id as char no-undo.
DEFINE VARIABLE hSocket AS HANDLE NO-UNDO.
DEFINE VARIABLE cService AS CHARACTER NO-UNDO.
DEFINE VARIABLE cHostName AS CHARACTER NO-UNDO.
DEFINE VARIABLE lResult AS LOGICAL NO-UNDO.

CREATE SOCKET hSocket.

GET-KEY-VALUE SECTION "DATABASE" KEY "dbhostname" VALUE cHostName.

ASSIGN
cService = "txipd" + ip-network-id /*ip-network-id = "fis" */
lResult = hSocket:CONNECT("-H " + cHostName + " -S " + cService) NO-ERROR.

IF lResult THEN do:
    MESSAGE cHostName "is accepting Cilent/Server connections on" cService " ."
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    /* Once done with the database disconnect and delete the object */
    hSocket:DISCONNECT() NO-ERROR.
    DELETE OBJECT hSocket NO-ERROR.
end.
Else
    MESSAGE "The Database is not listening on this port" cService lResult cHostName
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

Мой файл служб Windows содержит следующую запись:

txipdfis        31357/tcp

ip-network-id может совпадать с одним из многих параметров, выбранных в просмотре службыtxipdfis может быть на другом номере порта в зависимости от того, как была настроена конкретная установка, поэтому мне нужно искать «txipdfis» в служебном файле Windows, чтобы определить правильный номер порта.Это возможно?

1 Ответ

0 голосов
/ 23 января 2019

В файле служб Windows не было пустой строки в качестве последней строки.Как только я обновил файл служб с помощью CRLF в конце, я смог подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...