??我們最為熟知的網絡通信程序接口應該是 Socket。LwIP 自然也提供了 Socket 編程接口,不過,LwIP 的 Socket 編程接口都是使用最底層的接口來實現的。我們這里要學習的 UDP RAW 編程則是指的直接使用 LwIP 的最底層 UDP 接口來直接實現應用層功能。這里先來一張圖,對 LwIP 內部數據流向(函數調用)有個總體的認識。
??在 Socket 編程中有流式套接字(SOCK_STREAM)、數據包套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)這三種類型。流式套接字是面向連接的套接字,應用于 TCP 應用程序;數據包套接字(SOCK_DGRAM)是無連接的套接字,應用于 UDP 應用程序;原始套接字(SOCK_RAW)則提供了直接通過 IP 層發送和接收數據包的能力!
LwIP API
??LwIP 提供了 Callback-style APIs 和 Sequential-style APIs 兩種類型的 API。其中,Callback-style APIs 即為 LwIP 最底層的接口,被稱為 Raw API 或者 Native API;而