UIP協議棧四

寫到這裏本來不想再寫下去了,不過還是有些沒明白的地方。比如,我只看到了設備接收對方發過來的數據包,但是,UIP如何將數據包發送出去?還有那個uip_process()函數好長,很多沒弄明白,今天繼續翻看了另外一些代碼,發現一個宏UIP_APPCALL。
    都是自己的疏忽,在uip文檔裏面搜索UIP_APPCALL就提到了,不同的事件調用不懂的函數,UIP_APPCALL被定義成一個宏,當要用到應用層序的時候,就將UIP_APPCALL定義成相應的函數,比如:
    example1_app應用函數: 
  1. void example1_app(void)
  2.  {
  3.      if(uip_newdata() || uip_rexmit())
  4.      {
  5.          uip_send("ok\n", 3);
  6.      }
  7. }
    UIP_APPCALL宏
  1. #define UIP_APPCALL example2_app
    顯然,就是將example1_app定義成UIP_APPCALL宏來使用,這樣在uip_process()就可以直接使用UIP_APPCALL了。
    自己定義的example1_app函數中使用UIP應用層函數,就能在網絡上交換數據了。
發佈了28 篇原創文章 · 獲贊 15 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章