freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

通信軟件設(shè)計(jì)方法-第五講-狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)(存儲(chǔ)版)

  

【正文】 根據(jù)狀態(tài)情況處理事件 成都信息工程學(xué)院 12 狀態(tài)機(jī)程序設(shè)計(jì) 數(shù)據(jù) 結(jié)構(gòu)方法 狀態(tài)事件表 矩陣 M*N, N表示狀態(tài)數(shù)量, M表示事件數(shù)量 交叉點(diǎn)中 {Action, Next State} M事件 N狀態(tài) 成都信息工程學(xué)院 13 狀態(tài)機(jī)程序設(shè)計(jì) – 示例 7 數(shù)據(jù) 結(jié)構(gòu)方法 程序 /* 當(dāng)前狀態(tài)和事件的入口是 Set[Event][CurrentState] */ while (1) { get_event(amp。 Environment *ep。 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 示例程序 8 成都信息工程學(xué)院 35 struct ip_hdr { unsigned short int IP_v:4。 // 協(xié)議號(hào)碼 u_short IP_sum。 輸出到低層隊(duì)列: //有低層定義, IP傳輸 IP報(bào)文給低層模塊 /程序即可 輸出到高層隊(duì)列: define OUTPUT_QUEUE_TRAN 10 struct ip_data IP_OutQueueToTran[OUTPUT_QUEUE_TRAN]。 int RT_interface。 return FORWARD。 goto leave。 { int RoutingTableIndex。 } 路由尋找模塊 取得數(shù)據(jù)報(bào)文中目的地址 D 從頭到尾循環(huán)檢查路由表 [當(dāng)前 i] 1)求出網(wǎng)絡(luò)地址 N 2) 比較 N和路由表的 [i].目的地址 3)如匹配轉(zhuǎn) 5 如查找完成,但尚未存在匹配則 1) 出錯(cuò)返回 從路由表 [i]中取得出口號(hào)碼 存在路由返回 成都信息工程學(xué)院 48 IsForwardOrdiscard (struct ip_data *IpDataP, int *IfNoP)。 Resolve(amp。 return Analyze(amp。 return 1。 } 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 成都信息工程學(xué)院 51 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP軟件包中隊(duì)列操作如何寫(xiě)? 成都信息工程學(xué)院 52 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP 數(shù) 據(jù) IP頭 IP 數(shù) 據(jù) IP頭 IP 數(shù) 據(jù) IP頭 IP 數(shù) 據(jù) IP頭 隊(duì)列首下標(biāo) 隊(duì)列尾下標(biāo) 取 IP數(shù)據(jù)報(bào)文 [不釋放空間 ] 返回隊(duì)列首下標(biāo)的地址 放 IP數(shù)據(jù)報(bào)文 把數(shù)據(jù)報(bào)文拷貝到隊(duì)列下標(biāo)指示的地址空間中; 隊(duì)列下標(biāo) ++; if (隊(duì)列下標(biāo)到最大值)隊(duì)列下標(biāo) = 0; 釋放空間 隊(duì)列首下標(biāo) ++。 if (IP_InputQueue_head == INPUT_QUEUE) IP_InputQueue_head = 0。 bcopy(IPDataP, IP_InputQueue[index], sizeof *IPData)。 int IP_OutQueueToTran_head, IP_OutQueueToTran_tail。 IP_OutputQueueToTran_tail = index。 int IP_OutQueueToTran_head, IP_OutQueueToTran_tail。 int IP_OutQueueToTran_head, IP_OutQueueToTran_tail。IP_InputQueue[IP_InputQueue_head]。 int IP_OutQueueToTran_head, IP_OutQueueToTran_tail。 char *n = (char *) NetP for (i = 0。 char *n = (char *) NetP。 if (Analyze(Net, RoutingTable[RoutingTableIndex].RT_IP_address)) { *IfNOP = RoutingTable[RoutingTableIndex].RT_interface。Dest, IpDataPIP_dst, sizeof Dest)。 for (RoutingTableIndex = 0。 goto leave。 goto leave。 switch (CheckR) { case VER_INVALID: case LENTH_INVALID: case CHECK_SUM_FAILING: } if (IsThisMachine(IpDataPIP_Dst)) return THIS_MACHINE。 struct ip_addr RT_IP_next。 char IP_data[IP_DATA]。 // 數(shù)據(jù)報(bào)文總長(zhǎng)度 u_short IP_id。 //16位 struct ip_addr { unsigned long IP_addr。 } /* 入口矩陣是 Set[M][N] */ struct enter { *Action()。 case E2: /* Protocol Messages */ ……… break。 } break。 current_state = CONNECTED。 break。 Event變量的數(shù)值從哪里獲得? 增加 case語(yǔ)句 再用 switchcase結(jié)構(gòu) 程序變得很復(fù)雜,可讀差,修改困難 狀態(tài)數(shù)量很多怎么吧? 事件數(shù)量很多怎么吧? 這些函數(shù)是那里來(lái)的? 成都信息工程學(xué)院 11 狀態(tài)機(jī)程序設(shè)計(jì) switchcase結(jié)構(gòu) + 主循環(huán) …… ……… while (1) { get_event(amp。event)。 } parameter。 // 版本號(hào)碼 unsigned short int IP_hl:4。 // 檢驗(yàn)和 struct ip_addr IP_src, IP_dst。 int IP_OutQueueToTran_head, IP_OutQueueToTran_tail。 } 掩碼 4byte 目的地址 4byte 下一跳地址 4byte 標(biāo)記 1byte 引用記數(shù) 1int 使用記數(shù) 1long 接口號(hào)碼 1int 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 成都信息工程學(xué)院 40 IP路由表變量數(shù)組 define ROUTING_TABLE_MAX_NUMBER 10 struct routing_table RoutingTable[ROUTING_TABLE_MAX_NUMBER]。 } 處理模塊 (參數(shù)是需要處理的 IP報(bào)文) 檢查數(shù)據(jù)報(bào)文 1)版本合法 2)長(zhǎng)度合法 3)檢驗(yàn)和正確 4)以上之一是 NO, 出錯(cuò)返回 若目的地址是 IP地址 A) 本機(jī)返回 若是路由器 A) TTL減 1,如 TTL為 0則 出錯(cuò)返回 轉(zhuǎn)發(fā)返回 成都信息工程學(xué)院 46 第五講 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IpDataProcess(struct ip_data *IpDataP) { int CheckR。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1