clnttcp_create()

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

prognum versnum sockp sendsz recvsz

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


[Back: clntraw_create()]
[Next: clntudp_create()]