TCPdaytime.c
上传用户:wei_4586
上传日期:2008-05-28
资源大小:18k
文件大小:1k
源码类别:

网络

开发平台:

Unix_Linux

  1. /* TCPdaytime.c - TCPdaytime, main */
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <stdio.h>
  6. extern int errno;
  7. int TCPdaytime(const char *host, const char *service);
  8. int errexit(const char *format, ...);
  9. int connectTCP(const char *host, const char *service);
  10. #define LINELEN 128
  11. /*------------------------------------------------------------------------
  12.  * main - TCP client for DAYTIME service
  13.  *------------------------------------------------------------------------
  14.  */
  15. int
  16. main(int argc, char *argv[])
  17. {
  18. char *host = "localhost"; /* host to use if none supplied */
  19. char *service = "daytime"; /* default service port */
  20. switch (argc) {
  21. case 1:
  22. host = "localhost";
  23. break;
  24. case 3:
  25. service = argv[2];
  26. /* FALL THROUGH */
  27. case 2:
  28. host = argv[1];
  29. break;
  30. default:
  31. fprintf(stderr, "usage: TCPdaytime [host [port]]n");
  32. exit(1);
  33. }
  34. TCPdaytime(host, service);
  35. exit(0);
  36. }
  37. /*------------------------------------------------------------------------
  38.  * TCPdaytime - invoke Daytime on specified host and print results
  39.  *------------------------------------------------------------------------
  40.  */
  41. TCPdaytime(const char *host, const char *service)
  42. {
  43. char buf[LINELEN+1]; /* buffer for one line of text */
  44. int s, n; /* socket, read count */
  45. s = connectTCP(host, service);
  46. while( (n = read(s, buf, LINELEN)) > 0) {
  47. buf[n] = ''; /* ensure null-terminated */
  48. (void) fputs( buf, stdout );
  49. }
  50. }