寫到這裏本來不想再寫下去了,不過還是有些沒明白的地方。比如,我只看到了設備接收對方發過來的數據包,但是,UIP如何將數據包發送出去?還有那個uip_process()函數好長,很多沒弄明白,今天繼續翻看了另外一些代碼,發現一個宏UIP_APPCALL。
都是自己的疏忽,在uip文檔裏面搜索UIP_APPCALL就提到了,不同的事件調用不懂的函數,UIP_APPCALL被定義成一個宏,當要用到應用層序的時候,就將UIP_APPCALL定義成相應的函數,比如:
example1_app應用函數:
UIP_APPCALL宏
顯然,就是將example1_app定義成UIP_APPCALL宏來使用,這樣在uip_process()就可以直接使用UIP_APPCALL了。
自己定義的example1_app函數中使用UIP應用層函數,就能在網絡上交換數據了。
都是自己的疏忽,在uip文檔裏面搜索UIP_APPCALL就提到了,不同的事件調用不懂的函數,UIP_APPCALL被定義成一個宏,當要用到應用層序的時候,就將UIP_APPCALL定義成相應的函數,比如:
example1_app應用函數:
-
void example1_app(void)
-
{
- if(uip_newdata() || uip_rexmit())
-
{
-
uip_send("ok\n", 3);
-
}
- }
- #define UIP_APPCALL example2_app
自己定義的example1_app函數中使用UIP應用層函數,就能在網絡上交換數據了。