The clnttcp_create() call creates an RPC client transport handle for the remote program using TCP transport.
Syntax
#include <rpc\rpc.h> CLIENT * clnttcp_create(addr, prognum, versnum, sockp, sendsz, recvsz) struct sockaddr_in *addr; u_long prognum; u_long versnum; int *sockp; u_int sendsz; u_int recvsz;
Parameters
addr
Description
The clnttcp_create() call creates an RPC client transport handle for the remote program specified by (prognum, versnum). The client uses TCP as the transport layer.
Return Values
NULL indicates failure.
Examples
#define RMTPROGNUM (u_long)0x3fffffffL#define RMTPROGVER (u_long)0x1L register CLIENT *clnt; int sock = RPC_ANYSOCK; /* can be also valid socket descriptor */ struct hostent *hp; struct sockaddr_in server_addr; /* get the internet address of RPC server */ if ((hp = gethostbyname("RPCSERVER_HOST") == NULL) { fprintf(stderr,"Can't get address for %s\n",argv[2]); exit (-1); } bcopy(hp->h_addr, (caddr_t)&server_addr.sin_addr.s_addr, hp->h_length); server_addr.sin_family = AF_INET; server_addr.sin_port = 0;
/* create TCP handle */ if ((clnt = clnttcp_create(&server_addr, RMTPROGNUM, RMTPROGVER, &sock, 1024*10, 1024*10)) == NULL) { clnt_pcreateerror("clnttcp_create"); exit(-1); }
Related Calls