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