xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 425KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-10
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: go??back??n??gobackn??c語(yǔ)言??

資源簡(jiǎn)介

模仿數(shù)據(jù)鏈路層的gobackn協(xié)議 /*該協(xié)議是搭載ack的回退n步協(xié)議*/ #include #include "protocol.h" #define max_seq 7 #define flag 126 #define ESC 100 #define wait_time 2700 //發(fā)送計(jì)時(shí)器等待的時(shí)間 #define ack_wait_time 280 static int phl_ready = 0; unsigned char buf[max_seq+1][270]; unsigned char ack[8]; //發(fā)送空的ack幀 unsigned char in_buf[600], last_buf[520];//接收時(shí)的緩沖區(qū);去掉冗余之后的緩沖區(qū),為防備因誤碼兩幀合并為一幀而定義了很大一個(gè)數(shù)組 int nbuffered=0; //發(fā)送的幀數(shù) int buf_size[max_seq+1]; //記下以發(fā)送各幀的幀長(zhǎng) int next_frame_to_send=0; int frame_in_phl=0; //用于成幀 int frame_expected=0; int ack_expected=0; int between(int a,int b,int c) { if( ((a<=b)&&(b<c)) || ((c<a)&&(a<=b)) || ((b<c)&&(c<a)) ) return 1; else return 0; } //判斷幀尾,防止出現(xiàn)誤判esc esc flag為數(shù)據(jù)的情況 int end_flag(int in_len) { int count=0; int i; if(in_len=0;i--)//記錄flag前的esc數(shù)目 count++; return count%2; //若flag前的esc為偶數(shù),則為幀尾 }//成幀函數(shù)--數(shù)據(jù)幀 void send_frame(char *my_buf,int len) { int n; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //發(fā)送幀的幀號(hào) for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //將處理過(guò)的新幀賦值到緩沖區(qū)中 len=len+2; *(unsigned int *)(buf[frame_in_phl]+len) = crc32(buf[frame_in_phl],len); //在原始幀的基礎(chǔ)上加檢驗(yàn)和 buf_size[frame_in_phl]=len+4; //記錄當(dāng)前幀的長(zhǎng)度,包括3個(gè)幀頭,4個(gè)檢驗(yàn)和 nbuffered=nbuffered+1; //緩沖區(qū)占用數(shù)加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1); } //成幀函數(shù)--ack幀 void send_ack() //ack幀的處理 { ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack幀的序號(hào)位,使ack[1]==frame_expected恒不成立 *(unsigned int *)(ack+2) = crc32(ack,2); //在原始幀的基礎(chǔ)上加檢驗(yàn)和 } //主函數(shù) int main(int argc, char **argv) { int event, arg, n , m , i , j , len = 0 ,in_len = 0; unsigned char my_buf[260]; int phl_wait=0; //在物理層中還沒(méi)有被發(fā)送的幀 protocol_init(argc, argv); enable_network_layer(); for (;;) { event = wait_for_event(&arg); switch (event) { case NETWORK_LAYER_READY:

資源截圖

代碼片段和文件信息

/*該協(xié)議是搭載ack的回退n步協(xié)議*/
#include?
#include?“protocol.h“

#define?max_seq?7
#define?flag?126?????
#define?ESC?100
#define?wait_time?2700 //發(fā)送計(jì)時(shí)器等待的時(shí)間
#define?ack_wait_time?280

static?int?phl_ready?=?0;
unsigned?char?buf[max_seq+1][270];
unsigned?char?ack[8];????//發(fā)送空的ack幀

unsigned?char?in_buf[600]?last_buf[520];//接收時(shí)的緩沖區(qū);去掉冗余之后的緩沖區(qū)為防備因誤碼兩幀合并為一幀而定義了很大一個(gè)數(shù)組
int?nbuffered=0;??????????????//發(fā)送的幀數(shù)
int?buf_size[max_seq+1];??????//記下以發(fā)送各幀的幀長(zhǎng)
int?next_frame_to_send=0;?
int?frame_in_phl=0;???????????//用于成幀
int?frame_expected=0;
int?ack_expected=0;

int?between(int?aint?bint?c)
{
if(?((a<=b)&&(b return?1;
else?return?0;
}
//判斷幀尾防止出現(xiàn)誤判esc?esc?flag為數(shù)據(jù)的情況
int?end_flag(int?in_len)
{
int?count=0;
int?i;
if(in_len<=0)
return?1;
for(i=in_len-1;in_buf[i]==ESC&&i>=0;i--)//記錄flag前的esc數(shù)目
count++;
return?count%2;????????????????????//若flag前的esc為偶數(shù),則為幀尾
}//成幀函數(shù)--數(shù)據(jù)幀
void?send_frame(char?*my_bufint?len)
{
int?n;
buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack
buf[frame_in_phl][1]=frame_in_phl; //發(fā)送幀的幀號(hào)
for(n=0;n buf[frame_in_phl][n+2]=my_buf[n]; //將處理過(guò)的新幀賦值到緩沖區(qū)中
len=len+2;
*(unsigned?int?*)(buf[frame_in_phl]+len)?=?crc32(buf[frame_in_phl]len); //在原始幀的基礎(chǔ)上加檢驗(yàn)和
buf_size[frame_in_phl]=len+4; //記錄當(dāng)前幀的長(zhǎng)度包括3個(gè)幀頭,4個(gè)檢驗(yàn)和
nbuffered=nbuffered+1; //緩沖區(qū)占用數(shù)加一
frame_in_phl=(frame_in_phl+1)%(max_seq+1);
}
//成幀函數(shù)--ack幀
void?send_ack() //ack幀的處理
{
ack[0]=(frame_expected+max_seq)%(max_seq+1);
ack[1]=max_seq+10; //ack幀的序號(hào)位,使ack[1]==frame_expected恒不成立
*(unsigned?int?*)(ack+2)?=?crc32(ack2); //在原始幀的基礎(chǔ)上加檢驗(yàn)和
}
//主函數(shù)
int?main(int?argc?char?**argv)
{
????int?event?arg?n??m??i??j??len?=?0?in_len?=?0;
unsigned?char?my_buf[260];
int?phl_wait=0;????//在物理層中還沒(méi)有被發(fā)送的幀

????protocol_init(argc?argv);?
????enable_network_layer();

????for?(;;)?{
????????event?=?wait_for_event(&arg);

????????switch?(event)?{
????????case?NETWORK_layer_READY:
????????????len?=?get_packet(my_buf);?
phl_wait++;
send_frame(my_buflen);
stop_ack_timer();

????????????if?(phl_ready)?{
????????????????for(j=0;j {
//幀結(jié)構(gòu)為?ack?seq?內(nèi)容
//每幀尾部加發(fā)送一個(gè)flag

for?(i?=?0;?i?ame_to_send];?i++){
if?((buf[next_frame_to_send][i]==flag)?||?(buf[next_frame_to_send][i]==ESC)?)
send_byte(ESC);
send_byte(buf[next_frame_to_send][i]);
}
send_byte(flag);//幀尾

start_timer(next_frame_to_sendwait_time); //發(fā)送完啟動(dòng)相應(yīng)的定時(shí)器
next_frame_to_send=(next_frame_to_send+1)%(max_seq+1);
}
????????????????phl_ready??=?0; //記錄物理層當(dāng)前狀態(tài)為
phl_wait?=?phl_wait-j;
????????????}
????????????break;

????????case?PHYSICAL_layer_READY:
????????????if?(phl_wait)?{ //若有未發(fā)送的幀便發(fā)送
for(j=0;j {

for?(i?=?0;?i?ame_to_send];?i++){
if?(?(buf[next_fram

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????3574??2007-10-24?14:11??gobackn\datalink.dsp

?????文件????????541??2007-10-24?12:53??gobackn\datalink.dsw

?????文件??????66560??2008-12-02?21:26??gobackn\datalink.ncb

?????文件???????1215??2008-09-27?22:58??gobackn\protocol.h

?????文件????????252??2008-12-02?21:00??gobackn\datalink.plg

?????文件??????74690??2008-09-27?22:51??gobackn\Debug\protocol.lib

?????文件??????45624??2008-09-27?22:51??gobackn\Release\protocol.lib

?????文件??????33792??2008-12-02?21:00??gobackn\Release\vc60.idb

?????文件???????5242??2008-12-02?21:00??gobackn\Release\datalink.obj

?????文件?????180508??2008-12-02?14:23??gobackn\Release\datalink.pch

?????文件??????69632??2008-12-02?21:00??gobackn\Release\datalink.exe

?????文件??????79872??2008-12-02?19:17??gobackn\性能測(cè)試記錄表.doc

?????文件??????50688??2008-12-02?19:28??gobackn\源程序清單-樣板.DOC

?????文件??????37888??2008-12-02?19:21??gobackn\實(shí)驗(yàn)報(bào)告評(píng)語(yǔ).doc

?????文件??????41994??2008-12-02?18:38??gobackn\測(cè)試數(shù)據(jù)\datalink-A5e-5.log

?????文件?????123963??2008-12-02?18:16??gobackn\測(cè)試數(shù)據(jù)\datalink-A?1e-7.log

?????文件??????65335??2008-12-02?18:38??gobackn\測(cè)試數(shù)據(jù)\datalink-Af?–ber?1e-4.log

?????文件??????96352??2008-12-02?18:16??gobackn\測(cè)試數(shù)據(jù)\datalink-Af?–ber?5e-4.log

?????文件??????64971??2008-12-02?17:19??gobackn\測(cè)試數(shù)據(jù)\datalink-Af.log

?????文件??????69573??2008-12-02?17:55??gobackn\測(cè)試數(shù)據(jù)\datalink-Afl.log

?????文件??????43509??2008-12-02?17:41??gobackn\測(cè)試數(shù)據(jù)\datalink-Afle.log

?????文件??????67138??2008-12-02?17:33??gobackn\測(cè)試數(shù)據(jù)\datalink-Afs.log

?????文件??????35678??2008-12-02?16:57??gobackn\測(cè)試數(shù)據(jù)\datalink-A無(wú)參數(shù).log

?????文件??????41921??2008-12-02?18:38??gobackn\測(cè)試數(shù)據(jù)\datalink-B5e-5.log

?????文件?????124850??2008-12-02?18:16??gobackn\測(cè)試數(shù)據(jù)\datalink-B?1e-7.log

?????文件??????65543??2008-12-02?18:38??gobackn\測(cè)試數(shù)據(jù)\datalink-Bf?–ber?1e-4.log

?????文件??????95321??2008-12-02?18:16??gobackn\測(cè)試數(shù)據(jù)\datalink-Bf?–ber?5e-4.log

?????文件??????65507??2008-12-02?17:19??gobackn\測(cè)試數(shù)據(jù)\datalink-Bf.log

?????文件??????70150??2008-12-02?17:55??gobackn\測(cè)試數(shù)據(jù)\datalink-Bfl.log

?????文件??????43448??2008-12-02?17:41??gobackn\測(cè)試數(shù)據(jù)\datalink-Bfle.log

............此處省略13個(gè)文件信息

評(píng)論

共有 條評(píng)論