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

  • 大小: 1KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-07
  • 語言: C/C++
  • 標(biāo)簽:

資源簡介

停止等待協(xié)議的工作機(jī)理,并實(shí)現(xiàn)給出的協(xié)議算法。根據(jù)給出的停止等待協(xié)議的算法描述c語言實(shí)現(xiàn)

資源截圖

代碼片段和文件信息

#include
using?namespace?std;
void?recive(int?i);
int?readydir;//ready?=1就緒信號,dir?=?1方向
int?vs?=0;
int?vr?=0;
int?count?=0;
struct?buffer//數(shù)據(jù)緩沖區(qū)
{
int?pre;
int?NR;
int?data;
int?FCS;
int?EOT;
int?ACK_NAK;
};
buffer?buf;
struct?sframe//發(fā)送方的幀格式
{
int?pre;
int?NR;
int?data;
int?FCS;
int?EOT;
};
sframe?s[10];
struct?rframe//接收方的幀格式
{
int?pre;
int?Ns;
int?ACK_NAK;
int?FCS;
int?EOT;
};
rframe?r[10];
int?getdata[10]check;
int??CRC(int?i)//檢驗(yàn)函數(shù)
{
switch(i){
case?0:?return?0;break;
case?1:?return?6;break;
case?2:?return?2;break;
case?3:?return?3;break;
case?4:?return?4;break;
}
}
void?initial()//初始化數(shù)據(jù)幀
{

for(int?i?=0;?i<=9;?i++)
{
s[i].pre?=?0;
s[i].EOT?=00000100?;
s[i].data??=?i;
s[i].FCS?=???i;

}
for(int?j=0;?j<=9;j++)//初始化
{
getdata[j]?=?0;
}
ready?=?0;

}
void?send()
{?
int?i?=0;?vs?=0;
int?n?second?=?0;
int?counter?=0;

while(i?<=?4)
{

cout<<“數(shù)據(jù)已發(fā)送到緩沖區(qū)!“< buf.data?=?s[i].data;
buf.EOT?=?s[i].EOT;
buf.FCS?=?s[i].FCS;
buf.NR??=?s[i].NR;
buf.pre?=?s[i].pre;
s[i].NR?=?vs;


cout<<“等待接收數(shù)據(jù)!“< cout<<“...“< for(int?k?=0;?k<1000;?k++)
for(int?k1?=0;?k1<1000;k1++)
for(int?k2?=0;?k2<500;?k2++)
ready?=?1;?dir?=?1;
if(?i?==?3)
n?=?2001;
else
n?=?10;

for(int?j?=0;?j counter++;
??if(counter?<2000?||?second?==?1)
{
recive(i);

if(ready?==0?&&?dir?==0)
{
r[i].ACK_NAK?=?buf.ACK_NAK;
if(r[i].ACK_NAK?==?1)//發(fā)送成功,發(fā)送下一個
{
cout<<“等待接收確認(rèn)幀/否認(rèn)幀“< cout<<“...“< vs?=?1?-?vs;
????cout<<“發(fā)送成功,準(zhǔn)備發(fā)送下一個!“< cout<<“----------------------------“< i++;
}
???else?if(r[i].ACK_NAK?==?0?)//出現(xiàn)差錯重新發(fā)送
{
??? cout<<“等待接收確認(rèn)幀/否認(rèn)幀“< cout<<“...“< cout<<“出現(xiàn)差錯,需要重新發(fā)送“< cout<<“--------------------------------“< }
else?if(r[i].ACK_NAK?==?2)
{
cout<<“數(shù)據(jù)丟失需要重新發(fā)送“< cout<<“-------------------------------“< }
}
?}
??else?if(?counter?>=?2000)
{
cout<<“超時(shí)!需要重新發(fā)送!“< cout<<“------------------------------“< second?++;

}
}
}

void?recive(int?i)
{
?
????if(ready?==1?&&?dir?==1)
{
getdata[i]?=?buf.data;
if(i?==?2)
{?
if(vr?==1)
vr?=0;?else?vr?=1;
}
check?=?buf.FCS;
??if(s[i].NR??!=?vr)//對方的消息丟失
{
cout<<“消息丟失,發(fā)送確認(rèn)幀/否認(rèn)幀“< buf.ACK_NAK?=?2;
s[i].NR?=?vr;
ready?=0;
dir?=0;
count++;
}
else?if(check?==?CRC(i)||count?==1)//正確發(fā)送確認(rèn)幀
{

ready?=0;dir?=0;
cout<<“發(fā)送確認(rèn)幀/否認(rèn)幀“< cout<<“接收到的信息是:?“< buf.ACK_NAK?=?1;
vr?=?1-?vr;
s[i].NR?=?vr;

}
else?if(check?!=?CRC(i))//對方的消息有傳輸錯誤
{
cout<<“錯誤,發(fā)送確認(rèn)幀/否認(rèn)幀“<<

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

?????文件???????3383??2011-05-25?14:19??ARQ.cpp

-----------?---------??----------?-----??----

?????????????????3383????????????????????1


評論

共有 條評論

相關(guān)資源