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

  • 大小: 8KB
    文件類型: .java
    金幣: 1
    下載: 1 次
    發布日期: 2021-06-14
  • 語言: Java
  • 標簽: Go-Back-N??

資源簡介

運用編程語言實現基于Go-Back-N 的可靠數據傳輸軟件

資源截圖

代碼片段和文件信息

//package?protocol;
import?java.net.*;
import?java.util.*;
import?java.io.*;

@SuppressWarnings(“unused“)
public?class?GBN?extends?Thread?{
static?void?senddelay(int?x?int?y)?throws?InterruptedException?{
if?(x?==?1)?{
sleep(300);
System.out.println(“發送數據分組“?+?y?+?“時發生延遲:300毫秒!“);
}?else?if?(x?==?2)?{
sleep(750);
System.out.println(“發送數據分組“?+?y?+?“時發生延遲:750毫秒!“);
}?else?if?(x?==?3)?{
sleep(1200);
System.out.println(“發送數據分組“?+?y?+?“時發生延遲:1200毫秒!“);
}?else?if?(x?==?4)?{
sleep(2500);
System.out.println(“發送數據分組“?+?y?+?“時發生延遲:2500毫秒!“);
}?else?if?(x?==?5)?{
sleep(3000);
System.out.println(“發送數據分組“?+?y?+?“時發生延遲:3000毫秒!“);
}?else
;
}

static?void?OutputWindow(Sender?s)?{
for?(int?k?=?0;?k? //?表示至少成功發送并確認了一個數據分組
s.windowsign[k]++;
//?這種情況下滑動窗口向前移動!
}
System.out.println();
System.out.println(“當前窗口內的分組情況為:“);
//?顯示當前窗口內數據包情況
for?(int?p?=?0;?p? if?(s.windowsign[p]?<=?6)
if?(s.sent[s.windowsign[p]]?==?0)?{
System.out.println(“第“?+?p?+?“號窗口里面存放的是序號為“
+?s.windowsign[p]?+?“的待確認的數據分組!“);
}?else
System.out.println(“第“?+?p?+?“號窗口里面存放的是序號為“
+?s.windowsign[p]?+?“的待發送的數據分組!“);
else
System.out.println(“第“?+?p?+?“號窗口已經空了,并且后續窗口、發送方沒有要發送的數據分組了!“);
}
System.out.println();
}

public?static?void?main(String[]?args)?throws?IOException
InterruptedException?{
Sender?s?=?new?Sender();
Receiver?re?=?new?Receiver();
s.start();//?發送端啟動
re.run(s);//?接收端啟動
sleep(1000);//?延遲處理
for?(int?i?=?0;?i?<=?s.sign.length;?i++)?{
while?(i?>?s.localack?+?1)?{
//?尚有未確認的數據包,重發!
System.out.println(“發送方開始重新發送序號為“?+?(s.localack?+?1)?+?“的數據分組“);
int?ran?=?new?Random().nextInt(4);
int?randelay?=?new?Random().nextInt(6);
s.time();
senddelay(randelay?s.localack?+?1);//?設置隨機值,模擬數據傳輸延遲
if?(ran?!=?1)?{
re.receive(s.localack?+?1?s);//?設置隨機值,模擬數據丟包的過程
if?(s.localack?>=?0)
if?(s.acksign[s.localack]?==?0)?{
if?(s.localack?+?3?<=?6)
s.sent[s.localack?+?3]?=?0;
OutputWindow(s);
}
}?else
System.out.println(“序號為“?+?(s.localack?+?1)
+?“的分組在傳給接收方途中發生了丟包!“);
}
if?(i?!=?s.sign.length)?{
if?(i?==?0)?{
System.out.println();
System.out.println(“發送方:現在發送序號為0-2的數據分組“);
s.sent[0]?=?0;
s.sent[1]?=?0;
s.sent[2]?=?0;
System.out.println();
int?ran1?=?new?Random().nextInt(4);
int?randelay1?=?new?Random().nextInt(6);
s.time();//?計時開始(2秒時間)
senddelay(randelay1?0);//?設置隨機值,模擬數據傳輸延遲
if?(ran1?!=?1)?{
re.receive(s.sign[0]?s);//?設置隨機值,模擬數據丟包過程
if?(s.acksign[0]?==?0)?{
s.sent[3]?=?0;
s.acknowledged[0]?=?0;
OutputWindow(s);
}
}?else
System.out.println(“序號為“?+?“0“?+?“的分組在傳給接收方途中發生了丟包!“);
i++;
int?ran2?=?new?Random().nextInt(4);
int?randelay2?=?n

評論

共有 條評論

相關資源