prdefaults.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "unp.h"
  2. static doit(int, const char *);
  3. void
  4. main()
  5. {
  6. int tcpsock, udpsock;
  7. struct sockaddr_in servaddr;
  8. if ( (tcpsock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  9. err_sys("TCP socket error");
  10. #ifdef notdef
  11. bzero(&servaddr, sizeof(servaddr));
  12. servaddr.sin_family = AF_INET;
  13. servaddr.sin_port = htons(9);
  14. if (ascii2addr(AF_INET, "127.0.0.1", &servaddr.sin_addr) != 4)
  15. err_quit("ascii2addr error");
  16. if (connect(tcpsock, (SA *) &servaddr, sizeof(servaddr)) < 0)
  17. err_sys("connect error");
  18. #endif
  19. doit(tcpsock, "tcp");
  20. if ( (udpsock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
  21. err_sys("UDP socket error");
  22. doit(udpsock, "udp");
  23. exit(0);
  24. }
  25. static
  26. doit(int fd, const char *name)
  27. {
  28. int val;
  29. socklen_t optlen;
  30. optlen = sizeof(val);
  31. if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, &optlen) < 0)
  32. err_sys("SO_SNDBUF getsockopt error");
  33. printf("%s send buffer size = %d\n", name, val);
  34. optlen = sizeof(val);
  35. if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &val, &optlen) < 0)
  36. err_sys("SO_RCVBUF getsockopt error");
  37. printf("%s recv buffer size = %d\n", name, val);
  38. optlen = sizeof(val);
  39. if (getsockopt(fd, SOL_SOCKET, SO_SNDLOWAT, &val, &optlen) < 0)
  40. err_sys("SO_SNDLOWAT getsockopt error");
  41. printf("%s send low-water mark = %d\n", name, val);
  42. optlen = sizeof(val);
  43. if (getsockopt(fd, SOL_SOCKET, SO_RCVLOWAT, &val, &optlen) < 0)
  44. err_sys("SO_RCVLOWAT getsockopt error");
  45. printf("%s receive low-water mark size = %d\n", name, val);
  46. }