91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

停止等待協議的工作機理,并實現給出的協議算法。根據給出的停止等待協議的算法描述c語言實現

資源截圖

代碼片段和文件信息

#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//數據緩沖區
{
int?pre;
int?NR;
int?data;
int?FCS;
int?EOT;
int?ACK_NAK;
};
buffer?buf;
struct?sframe//發送方的幀格式
{
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)//檢驗函數
{
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()//初始化數據幀
{

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<<“數據已發送到緩沖區!“< 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<<“等待接收數據!“< 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)//發送成功,發送下一個
{
cout<<“等待接收確認幀/否認幀“< cout<<“...“< vs?=?1?-?vs;
????cout<<“發送成功,準備發送下一個!“< cout<<“----------------------------“< i++;
}
???else?if(r[i].ACK_NAK?==?0?)//出現差錯重新發送
{
??? cout<<“等待接收確認幀/否認幀“< cout<<“...“< cout<<“出現差錯,需要重新發送“< cout<<“--------------------------------“< }
else?if(r[i].ACK_NAK?==?2)
{
cout<<“數據丟失需要重新發送“< cout<<“-------------------------------“< }
}
?}
??else?if(?counter?>=?2000)
{
cout<<“超時!需要重新發送!“< 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<<“消息丟失,發送確認幀/否認幀“< buf.ACK_NAK?=?2;
s[i].NR?=?vr;
ready?=0;
dir?=0;
count++;
}
else?if(check?==?CRC(i)||count?==1)//正確發送確認幀
{

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

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

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

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

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

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


評論

共有 條評論

相關資源