2012-03-23 5 views
0

Ich spiele mit der Idee, RPC (Remote Procedure Calls) unter Linux zu verwenden, um zwischen zwei Prozessen auf dem SAME-Server zu kommunizieren. Daher ist das Datenformat von Multi-Byte-Variablen identisch und muss nicht unbedingt mit XDR transformiert werden. Ist es möglich, RPC ohne XDR auf Linux zu verwenden? Wenn ja, gibt es Beispiele dafür?Verwenden von RPC auf demselben Host ohne XDr

Wenn ich eine Funktion deklariert, die 3 Kurzschlüsse als Argumente ohne XDR verwendet, würde ich die Funktion wie folgt deklarieren?

program MESSAGEPROG { 
    version MESSAGEVERS { 
     int PRINTMESSAGE(short, short, short) = 1; 
    } = 1; 
} = 99; 

Vielen Dank.

Antwort

1

Ja, das ist möglich. Siehe das erste Beispiel in der folgenden rpcgen Anleitung: http://docs.freebsd.org/44doc/psd/22.rpcgen/paper.pdf

+0

Danke Matthias. Ich sehe, wo das zweite Beispiel die Verwendung von XDR zeigt. Es ist mir jedoch immer noch unklar, wie ich die RPCGEN-Datei schreiben würde, um eine Funktion zu sagen, die 3 Kurzschlüsse als Argumente akzeptiert, ohne dass RPCGEN die XDR-Routinen generiert. Bitte vergib mir, dass ich diese Dinge nicht kenne, ich habe noch nie mit RPCs gearbeitet. – Chimera

+0

Sie sollten sich nicht kümmern. Verwenden Sie einfach RPC mit XDR. Es spielt keine Rolle. Die Bytes müssen sowieso serialisiert werden, könnte es auch mit XDR tun. – nos

+0

Wie 'nos' gesagt haben, mach weiter und benutze XDR. Die Marshalling/Demarsharing-Zeit ist im Vergleich zur Netzwerkzeit unbedeutend. –