<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                pbuf就是一個描述協議棧中數據包的數據結構,LwIP中在pbuf.c和pubf.h實現了協議棧數據包管理的所有函數與數據結構,pbuf數據結構的定義具體見: ``` 1 /** Main packet buffer struct */ 2 struct pbuf 3 { 4 /** next pbuf in singly linked pbuf chain */ 5 struct pbuf *next; (1) 6 7 /** pointer to the actual data in the buffer */ 8 void *payload; (2) 9 10 u16_t tot_len; (3) 11 12 /** length of this buffer */ 13 u16_t len; (4) 14 15 u8_t type_internal; (5) 16 17 /** misc flags */ 18 u8_t flags; (6) 19 20 LWIP_PBUF_REF_T ref; (7) 21 22 /** For incoming packets, this contains the input netif's index */ 23 u8_t if_idx; (8) 24 }; ``` (1):next是一個pbuf類型的指針,指向下一個pbuf,因為網絡中的數據包可能很大,而pbuf能管理的數據包大小有限,就會采用鏈表的形式將所有的pbuf包連接起來,這樣子才能完整描述一個數據包,這些連接起來的pbuf包會組成一個鏈表,我稱之為pbuf鏈表。 (2):payload是一個指向數據區域的指針,指向該pbuf管理的數據區域起始地址,這里的數據區域可以是緊跟在pbuf結構體地址后面的RAM空間,也可以是ROM中的某個地址上,取決于pbuf的類型。 (3):tot_len中記錄的是當前pbuf及其后續pbuf所有數據的長度,例如如果當前pbuf是pbuf鏈表上第一個數據結構,那么tot_len就記錄著整個pbuf鏈表中所有pbuf中數據的長度;如果當前pbuf是鏈表上最后一個數據結構,那就記錄著當前pbuf的長度。 (4):len表示當前pbuf中有效的數據長度。 (5):type_internal表示pbuf的類型,LwIP中有4種pbuf的類型,并且使用了一個枚舉類型的數據結構定義他們,具體見代碼清單 6 2。 (6):flags字段在初始化的時候一般被初始化為0,此處就不對flags字段進行過多講解。 (7):ref表示該pbuf被引用的吃的啥,引用表示有其他制造指向當前pbuf,這里的指針可以是pbuf的next指針,也可以是其他任意形式的指針,初始化一個pbuf的時候,ref會被設置為1,因為該pbuf的地址一點會被返回一個指針變量,當有其他指針指向pbuf的時候,就必須調用相關函數將ref字段加1。 (8):if_idx用于記錄傳入的數據包中輸入netif的索引,也就是netif中num字段。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看