home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / netds / winsock / nwlink / testlib / netprint.c < prev    next >
C/C++ Source or Header  |  1997-10-05  |  4KB  |  156 lines

  1. /****************************************************************************\
  2. *  wperror.c -- sample program library demonstrating NWLink.
  3. *
  4. *       Microsoft Developer Support
  5. *       Copyright (c) 1992-1997 Microsoft Corporation
  6. *
  7. *  Demonstrates basic sockets programming with the Windows Sockets API
  8. *  using the NWLink transport.
  9. ****************************************************************************/
  10. #include <stdio.h>
  11. #include <windows.h>
  12. #include <wsipx.h>
  13.  
  14. /****************************************************************************
  15. *
  16. *    FUNCTION:  print_network_num( char *addrp)
  17. *
  18. *    PURPOSE:   Print out a given network number
  19. *                 
  20. *    ARGUMENTS:    addrp   Pointer to the network address
  21. *               
  22. *     RETURNS:   nothing.
  23. *
  24. *\***************************************************************************/
  25. void print_network_num(char *addrp)
  26. {
  27.  
  28.     printf("%02X%02X%02X%02X",
  29.         (unsigned char)*addrp,
  30.         (unsigned char)*(addrp + 1),
  31.         (unsigned char)*(addrp + 2),
  32.         (unsigned char)*(addrp + 3));
  33.  
  34.     return;
  35. }
  36.  
  37.  
  38. /****************************************************************************
  39. *
  40. *    FUNCTION:  print_node_num( char *addrp)
  41. *
  42. *    PURPOSE:   Print out a given node number
  43. *                 
  44. *    ARGUMENTS:    addrp   Pointer to the network address
  45. *               
  46. *     RETURNS:   nothing.
  47. *
  48. *\***************************************************************************/
  49. void print_node_num(char *addrp)
  50. {
  51.  
  52.     printf("%02X%02X%02X%02X%02X%02X",
  53.         (unsigned char)*addrp,
  54.         (unsigned char)*(addrp + 1),
  55.         (unsigned char)*(addrp + 2),
  56.         (unsigned char)*(addrp + 3),
  57.         (unsigned char)*(addrp + 4),
  58.         (unsigned char)*(addrp + 5));
  59.  
  60.     return;
  61. }
  62.  
  63.  
  64. /****************************************************************************
  65. *
  66. *    FUNCTION:  print_socket_num( char *addrp)
  67. *
  68. *    PURPOSE:   Print out a given socket number
  69. *                 
  70. *    ARGUMENTS:    addrp   Pointer to the network address
  71. *               
  72. *     RETURNS:   nothing.
  73. *
  74. *\***************************************************************************/
  75. void print_socket_num(char *addrp)
  76. {
  77.  
  78.     printf("%02X%02X",
  79.         (unsigned char)*addrp,
  80.         (unsigned char)*(addrp + 1));
  81.  
  82.     return;
  83. }
  84.  
  85. /****************************************************************************
  86. *
  87. *    FUNCTION:  print_netaddr( char *addrp, char *prestr, char *poststr)
  88. *
  89. *    PURPOSE:   Print out a given network address
  90. *                 
  91. *    ARGUMENTS:    addrp   = Ptr to the network address
  92. *                prestr  = String to print before addr
  93. *                poststr = String to print after addr
  94. *               
  95. *     RETURNS:   nothing.
  96. *
  97. *\***************************************************************************/
  98. void print_netaddr(char *addrp, char *prestr, char *poststr)
  99. {
  100.  
  101.     if (prestr)
  102.         printf(prestr);
  103.  
  104.  
  105.     print_network_num(addrp);
  106.     printf(" - ");
  107.     print_node_num(addrp+4);
  108.     printf(" - ");
  109.     print_socket_num(addrp+10);
  110.  
  111.  
  112.     if (poststr)
  113.         printf(poststr);
  114.  
  115.     return;
  116. }
  117.  
  118. /****************************************************************************
  119. *
  120. *    FUNCTION:  print_saddr( PSOCKADDR_IPX p )
  121. *
  122. *    PURPOSE:   Prints out contents of the SOCKADDR_IPX struct passed in.
  123. *                 
  124. *    ARGUMENTS:    PSOCKADDR_IPX => SOCKADDR_IPX struct to dump.
  125. *               
  126. *     RETURNS:   nothing.
  127. *
  128. *\***************************************************************************/
  129. void print_saddr(PSOCKADDR_IPX p)
  130. {
  131.     printf("address family = %d  address = ", p->sa_family);
  132.     print_netaddr(p->sa_netnum, NULL, NULL);
  133. }
  134.  
  135. /****************************************************************************
  136. *
  137. *    FUNCTION:  print_wsa( LPWSADATA w )
  138. *
  139. *    PURPOSE:   Dumps out the contents of a WSA structure.
  140. *                 
  141. *    ARGUMENTS:    umps out the contents of a WSA structure.
  142. *               
  143. *     RETURNS:   nothing.
  144. *
  145. *\***************************************************************************/
  146. void print_wsa(LPWSADATA w)
  147. {
  148.     printf("  Version =         %ld\n", w->wVersion);
  149.     printf("  High Version =    %ld\n", w->wHighVersion);
  150.     printf("  Description =     %s\n", w->szDescription);
  151.     printf("  System Status =   %s\n", w->szSystemStatus);
  152.     printf("  Max sockets =     %d\n", w->iMaxSockets);
  153.     printf("  Max UPD dg size = %d\n", w->iMaxUdpDg);
  154. }
  155.