Annotation of mstools/samples/rpc/adder1/server.c, revision 1.1.1.1

1.1       root        1: /****************************************************************************
                      2:                        Microsoft RPC Version 1.0 Alpha
                      3:                                 October 1991
                      4:                                Adder1 Example
                      5: 
                      6:     FILE:    adder1\server.c
                      7:     USAGE:   server
                      8:     PURPOSE: Server side of RPC distributed application adder1
                      9:     FUNCTIONS:  main() - registers server as RPC server
                     10:     COMMENTS:
                     11:     This version of the distributed application that adds two
                     12:     short integers features a client that manages its connection
                     13:     to the server. It uses the binding handle hRpcAdder1.
                     14: 
                     15: ****************************************************************************/
                     16: #include <stdlib.h>
                     17: #include <windows.h>
                     18: #include <string.h>
                     19: #include <stdio.h>
                     20: #include <ctype.h>
                     21: #include <rpc.h>       // RPC data structures and APIs
                     22: #include "adder1.h"    // interface
                     23: 
                     24: void main(void)
                     25: {
                     26:     RPC_HANDLE Server, Address, Interface;
                     27:     RPC_STATUS status;
                     28: 
                     29:     adder1_ProtocolStack.TransportType = RPC_TRANSPORT_NAMEPIPE;
                     30:     adder1_ProtocolStack.TransportInfo = "\\device\\namedpipe\\adder1";
                     31:     adder1_ProtocolStack.TransportInfoLength = \
                     32:         strlen(adder1_ProtocolStack.TransportInfo) + 1;
                     33: 
                     34:     status = RpcCreateServer( (RPC_EVENT_HANDLERS *)0,
                     35:                               &Server);
                     36:     if (status) {
                     37:         printf("RpcCreateServer: 0x%x\n", status);
                     38:         exit(2);
                     39:     }
                     40: 
                     41:     status = RpcAddAddress(Server,
                     42:                            &adder1_ProtocolStack,
                     43:                            0,            // address flags
                     44:                            &Address,
                     45:                            (void *) 0,   // reserved
                     46:                            RpcNormalResourceUsage,
                     47:                            0L);          // timeout
                     48:     if (status) {
                     49:         printf("RpcAddAddress: 0x%x", status);
                     50:         exit(2);
                     51:     }
                     52: 
                     53:     status = RpcAddInterface(Server,
                     54:                              &adder1_ProtocolStack,
                     55:                              &Interface,
                     56:                              (void *) 0,  // reserved
                     57:                              &adder1_DispatchTable);
                     58:     if (status) {
                     59:         printf("RpcAddInterface: 0x%x\n", status);
                     60:         exit(2);
                     61:     }
                     62: 
                     63:     printf("adder1 server started.  Waiting for client requests...\n");
                     64: 
                     65:     while (1)
                     66:         Sleep(5000);
                     67: 
                     68: } /* end main() */
                     69: 
                     70: /* end adder1\server.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.