udpcmd.c
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:1k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. /* UDP-related user commands
  2.  * Copyright 1991 Phil Karn, KA9Q
  3.  */
  4. #include <stdio.h>
  5. #include "global.h"
  6. #include "mbuf.h"
  7. #include "netuser.h"
  8. #include "udp.h"
  9. #include "internet.h"
  10. #include "cmdparse.h"
  11. #include "commands.h"
  12. static int doudpstat(int argc,char *argv[],void *p);
  13. static struct cmds Udpcmds[] = {
  14. "status", doudpstat, 0, 0, NULL,
  15. NULL,
  16. };
  17. int
  18. doudp(argc,argv,p)
  19. int argc;
  20. char *argv[];
  21. void *p;
  22. {
  23. return subcmd(Udpcmds,argc,argv,p);
  24. }
  25. int
  26. st_udp(udp,n)
  27. struct udp_cb *udp;
  28. int n;
  29. {
  30. if(n == 0)
  31. printf("&UCB      Rcv-Q  Local socketn");
  32. return printf("%9p%6u  %sn",udp,udp->rcvcnt,pinet(&udp->socket));
  33. }
  34. /* Dump UDP statistics and control blocks */
  35. static int
  36. doudpstat(argc,argv,p)
  37. int argc;
  38. char *argv[];
  39. void *p;
  40. {
  41. register struct udp_cb *udp;
  42. register int i;
  43. for(i=1;i<=NUMUDPMIB;i++){
  44. printf("(%2u)%-20s%10lu",i,
  45.  Udp_mib[i].name,Udp_mib[i].value.integer);
  46. if(i % 2)
  47. printf("     ");
  48. else
  49. printf("n");
  50. }
  51. if((i % 2) == 0)
  52. printf("n");
  53. printf("    &UCB Rcv-Q  Local socketn");
  54. for(udp = Udps;udp != NULL; udp = udp->next){
  55. if(st_udp(udp,1) == EOF)
  56. return 0;
  57. }
  58. return 0;
  59. }