1.UDP網絡編程的組成部分
Ø 啟動任務:負責UDP的初始化,創建通信工具和輪訓檢測是否有數據報到來。
Ø UDP數據處理任務:負責UDP報文的處理
Ø UDP服務例程:實現數據的收發。
二. 啟動任務
1. 啟動任務的功能
l 負責初始化UDP。
l 創建UDP數據處理處理任務和UDP服務例程。
l 輪訓檢測是否有數據到來。
2.UDP初始化由那及部分組成
1>初始化網絡端口地址
通過調用SetNetPort()函數來設置主機IP地址網關地址,子網掩碼和主機物理地址。
SetNetPort();
2>初始化RTL8019芯片
通過調用InitNic()函數初始化RTL9019以太網芯片對RTL8019芯片的工作寄存器進行設置。
InitNic(0);
3>初始化ARP函數
通過調用Initial_arp()函數初始化ARP。
Initial_arp();
4>初始化UDP
通過調用Udp_Initial函數初始化UDP。
Udp_Initial();
3.啟動任務程序
/********************************************************************
** Function name: TASK0
** Descriptions: 創建任務TASK1(udp數據處理任務)、TASK2(udp服務例程),分配信號量
** input parameters: 無
** output parameters: 無
** Returned value: 無
********************************************************************/
void Task0(void *pdata)
{
UBYTE iii;
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
TargetInit();
OSTaskCreate(Task1,(void *)0, &TaskStk1[1000 - 1],3);
OSTaskCreate(Task2,(void *)0, &TaskStk2[1000 - 1],4);
UDP_INIT();
SetNetPort();
InitNic(0); //RTL8019芯片初始化,在global.c中定義
Initial_arp();
Udp_Initial();
while(1)
{
OSTimeDly(4);
do
{
iii=Rec_Packet();//監控是否有數據到來
}
while(iii!=0);
}
}