CLIENT.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright (C) 1993-1997  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. //  MODULE:   client.c
  9. //
  10. //  PURPOSE:  This program is a command line oriented
  11. //            demonstration of the Simple service sample.
  12. //
  13. //  FUNCTIONS:
  14. //    main(int argc, char **argv);
  15. //
  16. //  COMMENTS:
  17. //
  18. //
  19. #include <windows.h>
  20. #include <stdio.h>
  21. #include <stdlib.h>
  22. #include <string.h>
  23. VOID _CRTAPI1 main(int argc, char *argv[])
  24. {
  25.     char    inbuf[80];
  26.     char    outbuf[80];
  27.     DWORD   bytesRead;
  28.     BOOL    ret;
  29.     LPSTR   lpszPipeName = "\\.\pipe\simple";
  30.     LPSTR   lpszString = "World";
  31.     int     ndx;
  32.     // allow user to define pipe name
  33.     for ( ndx = 1; ndx < argc-1; ndx++ )
  34.     {
  35.         if ( (*argv[ndx] == '-') || (*argv[ndx] == '/') )
  36.         {
  37.             if ( stricmp( "pipe", argv[ndx]+1 ) == 0 )
  38.             {
  39.                 lpszPipeName = argv[++ndx];
  40.             }
  41.             else if ( stricmp( "string", argv[ndx]+1 ) == 0 )
  42.             {
  43.                 lpszString = argv[++ndx];
  44.             }
  45.             else
  46.             {
  47.                 printf("usage: client [-pipe <pipename>] [-string <string>]n");
  48.                 exit(1);
  49.             }
  50.         }
  51.         else
  52.         {
  53.             printf("usage: client [-pipe <pipename>] [-string <string>]n");
  54.             exit(1);
  55.         }
  56.     }
  57.     strcpy( outbuf, lpszString );
  58.     ret = CallNamedPipeA(lpszPipeName,
  59.                          outbuf, sizeof(outbuf),
  60.                          inbuf, sizeof(inbuf),
  61.                          &bytesRead, NMPWAIT_WAIT_FOREVER);
  62.     if (!ret) {
  63.         printf("client: CallNamedPipe failed, GetLastError = %dn", GetLastError());
  64.         exit(1);
  65.     }
  66.     printf("client: received: %sn", inbuf);
  67. }