Lwip協(xié)議棧的實(shí)現(xiàn)目的,無非是要上層用來實(shí)現(xiàn)app的socket編程。好,我們就從socket開始。為了兼容性,lwip的socket應(yīng)該也是提供標(biāo)準(zhǔn)的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)好,這個結(jié)構(gòu)先不管它,接著看下get socket函數(shù)的實(shí)現(xiàn)【也是在src\api\socket.c文件中】,在這里我們看到這樣一條語句sock =&sockets[s];很明顯,返回值也是這個sock它是根據(jù)傳進(jìn)來的序列號在sockets數(shù)組中找到對應(yīng)的元素并返回該元素的地址。好了,那么這個sockets數(shù)組是在哪里被賦值了這些元素的呢?進(jìn)行到這里似乎應(yīng)該從標(biāo)準(zhǔn)的socket編程的開始,也就是socket函數(shù)講起,那我們就順便看一下。它對應(yīng)的實(shí)際實(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結(jié)構(gòu)體的指針,接著就是用這個指針作為參數(shù)調(diào)用了alloc socket函數(shù),下面具體看下這個函數(shù)的實(shí)現(xiàn)
標(biāo)簽: lwip 底層結(jié)構(gòu)
上傳時間: 2022-06-19
上傳用戶:aben
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有 0 = å = j k i k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
上傳時間: 2015-07-23
上傳用戶:zhangzhenyu
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有 0 = å = j k i k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
上傳時間: 2013-12-21
上傳用戶:偷心的海盜
1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.) #include<stdio.h> #include<stdlib.h> void merge(int arr[],int low,int mid,int high){ int i,k; int *tmp=(int*)malloc((high-low+1)*sizeof(int)); int left_low=low; int left_high=mid; int right_low=mid+1; int right_high=high; for(k=0;left_low<=left_high&&right_low<=right_high;k++) { if(arr[left_low]<=arr[right_low]){ tmp[k]=arr[left_low++]; } else{ tmp[k]=arr[right_low++]; } } if(left_low<=left_high){ for(i=left_low;i<=left_high;i++){ tmp[k++]=arr[i]; } } if(right_low<=right_high){ for(i=right_low;i<=right_high;i++) tmp[k++]=arr[i]; } for(i=0;i<high-low+1;i++) arr[low+i]=tmp[i]; } void merge_sort(int a[],int p,int r){ int q; if(p<r){ q=(p+r)/2; merge_sort(a,p,q); merge_sort(a,q+1,r); merge(a,p,q,r); } } int main(){ int a[8]={3,5,8,6,4,1,1}; int i,j; int x=10; merge_sort(a,0,6); printf("after Merging-Sort:\n"); for(i=0;i<7;i++){ printf("%d",a[i]); } printf("\n"); i=0;j=6; do{ if(a[i]+a[j]==x){ printf("exist"); break; } if(a[i]+a[j]>x) j--; if(a[i]+a[j]<x) i++; }while(i<=j); if(i>j) printf("not exist"); system("pause"); return 0; }
上傳時間: 2017-04-01
上傳用戶:糖兒水嘻嘻
Neural networks : an introduction / B. Muller, J.Reinhardt. 此書的配套軟盤
標(biāo)簽: B. introduction Reinhardt networks
上傳時間: 2013-12-13
上傳用戶:wyc199288
本書提供用J B u i l d e r開發(fā)數(shù)據(jù)庫應(yīng)用程序、創(chuàng)建分布式應(yīng)用程序以及編寫J a v a B e a n 組件的高級資料。它包括下列幾個部分: • 第一部分是“開發(fā)數(shù)據(jù)庫應(yīng)用程序”,它提供關(guān)于使用J b u i l d e r的D a t a E x p r e s s數(shù)據(jù) 庫體系結(jié)構(gòu)的信息,并解釋原始數(shù)據(jù)組件和類之間的相互關(guān)系,以及怎樣使用它 們來創(chuàng)建你的數(shù)據(jù)庫應(yīng)用程序。它還解釋怎樣使用Data Modeler(數(shù)據(jù)模型器)和 Application Generator(應(yīng)用程序生成器)創(chuàng)建數(shù)據(jù)驅(qū)動的客戶機(jī)/服務(wù)器應(yīng)用程 序。 • 第二部分是“開發(fā)分布式應(yīng)用程序”,它提供關(guān)于使用ORB Explorer、用J B u i l d e r 創(chuàng)建多級的分布應(yīng)用程序、調(diào)試分布式應(yīng)用程序、用J a v a定義C O R B A接口以及 使用s e r v l e t等的信息。 • 第三部分是“創(chuàng)建J a v a B e a n”,它解釋怎樣開發(fā)新的J a v a B e a n組件,描述在組件 開發(fā)中涉及的任務(wù), 怎樣使用B e a n s E x p r e s s創(chuàng)建新的J a v a B e a n,以及關(guān)于屬性、 事件、B e a nIn f o類和其他方面的詳細(xì)情況。
標(biāo)簽: 8226 數(shù)據(jù)庫 應(yīng)用程序 分
上傳時間: 2014-01-03
上傳用戶:wpt
這是我心儀已久的一本書 頂級大師Stanley B Lippman J o s é e L a j o i e合著的
上傳時間: 2014-01-01
上傳用戶:nanfeicui
實(shí)現(xiàn)最優(yōu)二叉樹的構(gòu)造;在此基礎(chǔ)上完成哈夫曼編碼器與譯碼器。 假設(shè)報文中只會出現(xiàn)如下表所示的字符: 字符 A B C D E F G H I J K L M N 頻度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 字符 O P Q R S T U V W X Y Z , . 頻度 63 15 1 48 51 80 23 8 18 1 16 1 6 2 要求完成的系統(tǒng)應(yīng)具備如下的功能: 1.初始化。從終端(文件)讀入字符集的數(shù)據(jù)信息,。建立哈夫曼樹。 2.編碼:利用已建好的哈夫曼樹對明文文件進(jìn)行編碼,并存入目標(biāo)文件(哈夫曼碼文件)。 3.譯碼:利用已建好的哈夫曼樹對目標(biāo)文件(哈夫曼碼文件)進(jìn)行編碼,并存入指定的明文文件。 4.輸出哈夫曼編碼文件:輸出每一個字符的哈夫曼編碼。
上傳時間: 2014-11-23
上傳用戶:shanml
替代加密: A B C D E F G H I J K L M N O P Q R S T U V W 密文 Y Z D M R N H X J L I O Q U W A C B E G F K P 明文 X Y Z T S V I HAVE A DREAM!# 密文?? 用ARM編程實(shí)現(xiàn)替代加密。
標(biāo)簽: 加密
上傳時間: 2016-07-17
上傳用戶:qq521
這是一個三次樣條插值的.m程序 輸入的是一個二維數(shù)組A(Nx2) 插值方法為: S(x) = A(J) + B(J)*( x - x(J) ) + C(J)*( x - x(J) )**2 +D(J) * ( x - x(J) )**3 for x(J) <= x < x(J + 1)
上傳時間: 2013-12-14
上傳用戶:gengxiaochao
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1