|
|
1.1 ! root 1: /**************************************************************************** ! 2: Microsoft RPC Version 1.0 Alpha ! 3: October 1991 ! 4: Hello1 Example ! 5: FILE: hello1\server.c ! 6: USAGE: server ! 7: PURPOSE: Server side of RPC distributed application hello1 ! 8: FUNCTIONS: main() - registers server as RPC server ! 9: COMMENTS: ! 10: This version of the distributed application that prints ! 11: "hello, world" on the server features automatic binding. ! 12: The client application makes the remote call as if it ! 13: were a local call. ! 14: ****************************************************************************/ ! 15: #include <stdlib.h> ! 16: #include <windows.h> ! 17: #include <string.h> ! 18: #include <stdio.h> ! 19: #include <ctype.h> ! 20: ! 21: #include <rpc.h> // RPC data structures and APIs ! 22: #include "hello1.h" // remote data and functions ! 23: ! 24: void main(void) ! 25: { ! 26: RPC_HANDLE Server, Address, Interface; ! 27: RPC_STATUS status; ! 28: ! 29: hello1_ProtocolStack.TransportType = RPC_TRANSPORT_NAMEPIPE; ! 30: hello1_ProtocolStack.TransportInfo = "\\device\\namedpipe\\hello1"; ! 31: hello1_ProtocolStack.TransportInfoLength = ! 32: strlen(hello1_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: &hello1_ProtocolStack, ! 43: 0, // address flags ! 44: &Address, ! 45: (void *) 0, // reserved ! 46: RpcNormalResourceUsage, ! 47: 0L); // timeout ! 48: if (status) { ! 49: printf("RpcAddAddress: 0x%x\n", status); ! 50: exit(2); ! 51: } ! 52: ! 53: status = RpcAddInterface(Server, ! 54: &hello1_ProtocolStack, ! 55: &Interface, ! 56: (void *) 0, // reserved ! 57: &hello1_DispatchTable); ! 58: if (status) { ! 59: printf("RpcAddInterface: 0x%x\n", status); ! 60: exit(2); ! 61: } ! 62: printf("This application requires the locator service.\n"); ! 63: printf("The locator service is not provided with RPC V1.0 Alpha.\n"); ! 64: exit(0); ! 65: ! 66: status = RpcExport(Server, ! 67: RpcScopeLocal, ! 68: &hello1_ProtocolStack); ! 69: if (status) { ! 70: printf("RpcExport: 0x%x\n", status); ! 71: exit(2); ! 72: } ! 73: ! 74: printf("Hello1 server started. Waiting for client requests...\n"); ! 75: ! 76: while (1) ! 77: Sleep(5000); ! 78: ! 79: } /* end hello1\server.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.