pmap_getport(2)

ポートマッパ(portmap)からRPCサービスのポート番号を取得するpmap_getport関数の使い方。

用例
...
addr.sin_port = htons(111); /* (1) portmapのポート番号を設定 */
if ((addr.sin_port = htons(pmap_getport(&addr, 0x20000000, 1, IPPROTO_TCP))) == 0) { /* (2) 使用したいRPCサービスのポート番号で置き換え */
perror("pmap_getport");
exit(1);
}

/* (3) ポート番号が置き換わったところで、コネクトする */
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0){
perror("connect");
exit(1);
}
備考
上記は、独自プロトコルのポート取得にportmapを使う例になっている。本来、connectなんて書かずに、キチンとRPCの関数を使ってRPCプロトコルで通信すべきなんだろうが。

コメント