Openedge使用Windows服务名称连接到端口

时间:2019-01-02 17:03:56

标签: sockets windows-services openedge progress-4gl

我正在尝试编写一个程序来测试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可能位于不同的端口号上,具体取决于设置的特定安装方式,因此我需要在Windows服务中查找“ txipdfis”文件以确定正确的端口号。这可能吗?

1 个答案:

答案 0 :(得分:0)

Windows服务文件的最后一行没有空行。最后,我用CRLF更新了服务文件后,就可以连接了。