なぜこれが機能しないのかを理解しようとして、私は少し夢中になっています。私はsunrpcを使用していますが、生成されたサーバーコードは次をスローします:
サービスを登録できません: RPC: 登録できない引数をエンコードできません
(MYRPC、MYRPC_V1、udp)。
なぜこれが起こっているのか分かりません。スタブを生成するために次のことを行っています。
$ rpcgen -NMC myrpc.x
これが私のXDRです
struct imgdata{
opaque data<>;
};
program MYRPC {
version MYRPC_V1 {
imgdata minify(imgdata) = 1;
} = 1;
} = 0x30D0D0DFF;
.x ファイルをコンパイルしてクライアント、サーバー、xdr マーシャリング コード、またはヘッダーを作成する際にエラーは発生しません。rpc インターフェースも実装しましたが、生成されたサーバー (myrpc_svr.c) を起動しようとするとエラーが発生するため、テストできませんでした。
このエラー メッセージが参照している引数は何ですか? XDR で定義された関数の実装が好きではありませんか? エンコーディング引数が原因でプログラムが登録されないのはなぜですか?
これがクライアント側のエラー メッセージではないことに、私は実際に非常に驚いています。