Lwip協(xié)議棧的實現(xiàn)目的,無非是要上層用來實現(xiàn)app的SOCKet編程。好,我們就從SOCKet開始。為了兼容性,lwip的SOCKet應該也是提供標準的SOCKet接口函數(shù),恩,沒錯,在src\inc lude\lwip\SOCKet.h文件中可以看到下面的宏定義:#if LWIP COMPAT SOCKETS#define accept(a,b,c)Iwip accept(a,b,c)#define bind(a,b,c)Iwip bind(a,b,c)#define shutdown(a,b)Iwip shutdown(a,b)#define closeSOCKet(s)Iwip close(s)好,這個結構先不管它,接著看下get SOCKet函數(shù)的實現(xiàn)【也是在src\api\SOCKet.c文件中】,在這里我們看到這樣一條語句SOCK =&SOCKets[s];很明顯,返回值也是這個SOCK它是根據(jù)傳進來的序列號在SOCKets數(shù)組中找到對應的元素并返回該元素的地址。好了,那么這個SOCKets數(shù)組是在哪里被賦值了這些元素的呢?進行到這里似乎應該從標準的SOCKet編程的開始,也就是SOCKet函數(shù)講起,那我們就順便看一下。它對應的實際實現(xiàn)是下面這個函數(shù)Int Iwip SOCKet(int domain,int type,int protocol)【src\api\SOCKet.c】這個函數(shù)根據(jù)不同的協(xié)議類型,也就是函數(shù)中的type參數(shù),創(chuàng)建了一個netconn結構體的指針,接著就是用這個指針作為參數(shù)調(diào)用了alloc SOCKet函數(shù),下面具體看下這個函數(shù)的實現(xiàn)
標簽:
lwip
底層結構
上傳時間:
2022-06-19
上傳用戶:aben