Распределенные вычисления: технология Microsoft RPC. Часть1. Фертиков В.В. - 23 стр.

UptoLike

Составители: 

23
void main(int argc, char * argv[])
{ RPC_STATUS status;
unsigned char * pszProtocolSequence = "ncacn_np";
unsigned char * pszSecurity = NULL;
unsigned char * pszEndpoint = "\\pipe\\hello";
unsigned int cMinCalls = 1;
unsigned int cMaxCalls = 20;
unsigned int fDontWait = FALSE;
int i;
/* Обработка ключей командной строки, позволяющих изменять
определенные выше установки параметров */
for (i = 1; i < argc; i++) {
if ((*argv[i] == '-') || (*argv[i] == '/')) {
switch (tolower(*(argv[i]+1))) {
case 'p': // protocol sequence
pszProtocolSequence = argv[++i]; break;
case 'e': // endpoint
pszEndpoint = argv[++i]; break;
case 'm': // max concurrent calls
cMaxCalls = (unsigned int) atoi(argv[++i]);
break;
case 'n': // min concurrent calls
cMinCalls = (unsigned int) atoi(argv[++i]);
break;
case 'f': // flag
fDontWait = (unsigned int) atoi(argv[++i]);
break;
case 'h':
case '?':
default: Usage(argv[0]);
}
}
else Usage(argv[0]);
}
status = RpcServerUseProtseqEp(
pszProtocolSequence,
cMaxCalls,
pszEndpoint,
pszSecurity); // Security-дескриптор
printf("RpcServerUseProtseqEp returned 0x%x\n", status);
if (status) exit(status);
                              23
void main(int argc, char * argv[])
{   RPC_STATUS status;
    unsigned char * pszProtocolSequence   =   "ncacn_np";
    unsigned char * pszSecurity           =   NULL;
    unsigned char * pszEndpoint           =   "\\pipe\\hello";
    unsigned int    cMinCalls             =   1;
    unsigned int    cMaxCalls             =   20;
    unsigned int    fDontWait             =   FALSE;
    int i;

/* Обработка ключей командной строки, позволяющих изменять
    определенные выше установки параметров */
  for (i = 1; i < argc; i++) {
      if ((*argv[i] == '-') || (*argv[i] == '/')) {
         switch (tolower(*(argv[i]+1))) {
             case 'p': // protocol sequence
                 pszProtocolSequence = argv[++i]; break;
             case 'e': // endpoint
                 pszEndpoint = argv[++i]; break;
             case 'm': // max concurrent calls
                 cMaxCalls = (unsigned int) atoi(argv[++i]);
                 break;
             case 'n': // min concurrent calls
                 cMinCalls = (unsigned int) atoi(argv[++i]);
                 break;
             case 'f': // flag
                 fDontWait = (unsigned int) atoi(argv[++i]);
                 break;
             case 'h':
             case '?':
             default: Usage(argv[0]);
         }
      }
      else Usage(argv[0]);
  }

    status = RpcServerUseProtseqEp(
                     pszProtocolSequence,
                     cMaxCalls,
                     pszEndpoint,
                     pszSecurity); // Security- дескриптор
    printf("RpcServerUseProtseqEp returned 0x%x\n", status);
    if (status) exit(status);