struct msghdr 結構體


struct msghdr 結構體
 
struct iovec {                    /* Scatter/gather arrayitems */
      void *iov_base;              /*Starting address */
      size_t iov_len;               /* Number of bytes to transfer*/
  };
   /* iov_base: iov_base指向數據包緩沖區,即參數buff,iov_len是buff的長度。msghdr中允許一次傳遞多個buff,
     以數組的形式組織在 msg_iov中,msg_iovlen就記錄數組的長度(即有多少個buff)
   */
  struct msghdr {
      void         *msg_name;       /* optional address */
      socklen_t     msg_namelen;    /* size of address */
      struct iovec *msg_iov;        /* scatter/gather array */
      size_t        msg_iovlen;     /* # elements in msg_iov */
      void         *msg_control;    /* ancillary data, see below */
      size_t        msg_controllen; /* ancillary databuffer len */
      int           msg_flags;      /* flags on received message */
  };
  /* msg_name:數據的目的地址,網絡包指向sockaddr_in, netlink則指向sockaddr_nl;
     msg_namelen: msg_name 所代表的地址長度
     msg_iov: 指向的是緩沖區數組
     msg_iovlen: 緩沖區數組長度
     msg_control: 輔助數據,控制信息(發送任何的控制信息)
     msg_controllen: 輔助信息長度
     msg_flags: 消息標識
  */


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM