Annotation of mstools/samples/rpc/hello2/server.c, revision 1.1

1.1     ! root        1: /****************************************************************************
        !             2:                        Microsoft RPC Version 1.0 Alpha
        !             3:                                 October 1991
        !             4:                                Hello2 Example
        !             5: 
        !             6:     FILE:       hello2\server.c
        !             7:     USAGE:      server
        !             8:     PURPOSE:    Server side of RPC distributed application hello2
        !             9:     FUNCTIONS:  main() - registers server as RPC server
        !            10:     COMMENTS:
        !            11:     This version of the distributed application that prints
        !            12:     "hello, world" on the server features a client that
        !            13:     manages its connection to the server. It uses the binding
        !            14:     handle hRpcHello, defined in the file hello2.h.
        !            15: ****************************************************************************/
        !            16: #include <stdlib.h>
        !            17: #include <windows.h>
        !            18: #include <string.h>
        !            19: #include <stdio.h>
        !            20: #include <ctype.h>
        !            21: 
        !            22: #include <rpc.h>    // RPC data structures and APIs
        !            23: #include "hello2.h"    // interface
        !            24: 
        !            25: void main(void)
        !            26: {
        !            27:     RPC_HANDLE Server, Address, Interface;
        !            28:     RPC_STATUS status;
        !            29: 
        !            30: 
        !            31: /*  Select named pipes as the transport type and provide the     */
        !            32: /*  name of the named pipe that is used for RPC.                 */
        !            33: /*  The server specifies the pipe name in the form:              */
        !            34: /*       \device\namedpipe\pipename                              */
        !            35: /*  In this example, the pipename is "hello2"                    */
        !            36: 
        !            37:     hello2_ProtocolStack.TransportType = RPC_TRANSPORT_NAMEPIPE;
        !            38:     hello2_ProtocolStack.TransportInfo = "\\device\\namedpipe\\hello2";
        !            39:     hello2_ProtocolStack.TransportInfoLength = \
        !            40:         strlen(hello2_ProtocolStack.TransportInfo) + 1;
        !            41: 
        !            42:     status = RpcCreateServer( (RPC_EVENT_HANDLERS *)0,
        !            43:                               &Server);
        !            44:     if (status) {
        !            45:         printf("RpcCreateServer: 0x%x\n", status);
        !            46:         exit(2);
        !            47:     }
        !            48: 
        !            49:     status = RpcAddAddress(Server,
        !            50:                            &hello2_ProtocolStack,
        !            51:                            0,            // address flags
        !            52:                            &Address,
        !            53:                            (void *) 0,   // reserved
        !            54:                            RpcNormalResourceUsage,
        !            55:                            0L);          // timeout
        !            56:     if (status) {
        !            57:         printf("RpcAddAddress: 0x%x\n", status);
        !            58:         exit(2);
        !            59:     }
        !            60: 
        !            61:     status = RpcAddInterface(Server,
        !            62:                              &hello2_ProtocolStack,
        !            63:                              &Interface,
        !            64:                              (void *) 0,  // reserved
        !            65:                              &hello2_DispatchTable);
        !            66:     if (status) {
        !            67:         printf("RpcAddInterface: 0x%x\n", status);
        !            68:         exit(2);
        !            69:     }
        !            70: 
        !            71:     printf("hello2 server started.  Waiting for client requests...\n");
        !            72: 
        !            73:     while (1)
        !            74:         Sleep(5000);
        !            75: 
        !            76: } /* end main() */
        !            77: 
        !            78: /* end hello2\server.c */

unix.superglobalmegacorp.com

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