socket.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. struct msghdr {
  2. void *msg_name;
  3. socklen_t msg_namelen;
  4. struct iovec *msg_iov;
  5. #if __BYTE_ORDER == __BIG_ENDIAN
  6. int __pad1, msg_iovlen;
  7. #else
  8. int msg_iovlen, __pad1;
  9. #endif
  10. void *msg_control;
  11. #if __BYTE_ORDER == __BIG_ENDIAN
  12. int __pad2;
  13. socklen_t msg_controllen;
  14. #else
  15. socklen_t msg_controllen;
  16. int __pad2;
  17. #endif
  18. int msg_flags;
  19. };
  20. struct cmsghdr {
  21. #if __BYTE_ORDER == __BIG_ENDIAN
  22. int __pad1;
  23. socklen_t cmsg_len;
  24. #else
  25. socklen_t cmsg_len;
  26. int __pad1;
  27. #endif
  28. int cmsg_level;
  29. int cmsg_type;
  30. };
  31. #define SOCK_STREAM 2
  32. #define SOCK_DGRAM 1
  33. #define SOL_SOCKET 65535
  34. #define SO_DEBUG 1
  35. #define SO_REUSEADDR 0x0004
  36. #define SO_KEEPALIVE 0x0008
  37. #define SO_DONTROUTE 0x0010
  38. #define SO_BROADCAST 0x0020
  39. #define SO_LINGER 0x0080
  40. #define SO_OOBINLINE 0x0100
  41. #define SO_REUSEPORT 0x0200
  42. #define SO_SNDBUF 0x1001
  43. #define SO_RCVBUF 0x1002
  44. #define SO_SNDLOWAT 0x1003
  45. #define SO_RCVLOWAT 0x1004
  46. #define SO_RCVTIMEO 0x1006
  47. #define SO_SNDTIMEO 0x1005
  48. #define SO_ERROR 0x1007
  49. #define SO_TYPE 0x1008
  50. #define SO_ACCEPTCONN 0x1009
  51. #define SO_PROTOCOL 0x1028
  52. #define SO_DOMAIN 0x1029
  53. #define SO_NO_CHECK 11
  54. #define SO_PRIORITY 12
  55. #define SO_BSDCOMPAT 14
  56. #define SO_PASSCRED 17
  57. #define SO_PEERCRED 18
  58. #define SO_PEERSEC 30
  59. #define SO_SNDBUFFORCE 31
  60. #define SO_RCVBUFFORCE 33
  61. #define SOCK_NONBLOCK 0200
  62. #define SOCK_CLOEXEC 02000000