ms在Linux上使用带有RPC的固定端口

时间:2015-11-02 12:16:15

标签: linux rpc openvms

我目前正在将客户端/服务器应用程序的服务器部分从OpenVMS迁移到Linux(RHEL)。通过RPC完成通信。我现在看到端口映射器在整个范围内“扩展”分配的端口,而不是一个接一个地分配(就像在OpenVMS中一样)。

我通过以下代码(GNU-C)分配端口:

(void)pmap_unset(server_nr, KOMVERS) ;
transp = svctcp_create(RPC_ANYSOCK, 0, 0) ;
if (transp == NULL)
{
    fprintf(stderr, "cannot create tcp service.\n") ;
    exit(EXIT_FAILURE) ;
}
if (!svc_register(transp, server_nr, KOMVERS, komprog_1, IPPROTO_TCP))
{
    fprintf(stderr, "unable to register (%ld, tcp).\n",server_nr) ;
    exit(EXIT_FAILURE) ;
}

server_nr是客户端用于访问服务器的服务器程序的编号(从800000000开始)。 在启动多个服务器进程后,我得到了

...使用rpcinfo

800000101   1   tcp    0.0.0.0.250.211     - unknown
800000102   1   tcp    0.0.0.0.250.211     - unknown

...使用netstat

Proto Recv-Q Send-Q Local Address   Foreign Adress State   PID/Program
tcp   0      0      0.0.0.0:52414   0.0.0.0:*      LISTEN  1604/Server01
tcp   0      0      0.0.0.0:25600   0.0.0.0:*      LISTEN  1606/Server02

出于安全原因,我希望端口映射器始终使用已定义的端口(我的应用程序是机器上唯一的应用程序),但我无法找到如何执行此操作。 有人能帮助我吗?

0 个答案:

没有答案