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