在linux中远程过程调用

时间:2013-05-11 10:19:49

标签: c linux networking network-programming rpc

这是我的客户代码

cl.c

#include "S.h"
 int main()
 {
   CLIENT *cl;
   cl=clnt_create("127.0.0.1",S_PROG,S_VERS,"tcp");
   struct st i,*o;i.a=3;
   o=square_1(&i,cl);
   printf("%d",o->a);
   return 0;
  }

服务器代码

server1.c

#include "S.h"
 struct st* square_1_svc(struct st *i,struct svc_req *r)
 {
   static struct st o;
   o.a=i->a*i->a;
   return &o;
 }

S.x

struct st
{
  int a;
};
program S_PROG
{
   version S_VERS
   {
       st square(st)=1;
   }=1;
}=OX31231234;

编制程序

rpcgen -C S.x
gcc -c S_xdr.c
gcc -c S_clnt.c
gcc -c S_svc.c
gcc -c cl.c
gcc -c server1.c

手动构建目标文件

gcc -o rpccl S_xdr.o S_clnt.o cl.o -lnsl
gcc -o rpcserver1 S_xdr.o S_svc.o server1.o -lnsl

./rpserver1
./spccl

当我运行我的客户端输出文件,即“./spccl”行时,我得到分段错误。

0 个答案:

没有答案