diff --git a/Labs/Lab3/source/实验3_21281280_柯劲帆_物联网.md b/Labs/Lab3/source/实验3_21281280_柯劲帆_物联网.md index 817ae81..ea5dcb5 100644 --- a/Labs/Lab3/source/实验3_21281280_柯劲帆_物联网.md +++ b/Labs/Lab3/source/实验3_21281280_柯劲帆_物联网.md @@ -89,10 +89,10 @@ ### 4.1.1.发送方 -**定义一个数据包类`Package`,包含数据和`seqnum`。** +**定义一个数据包类`Packet`,包含数据和`seqnum`。** ```python -class Package: +class Packet: def __init__(self, data:str, seq_num:int) -> None: self.data = data self.seq_num = seq_num @@ -146,20 +146,20 @@ class NetworkLayer: ```python def __init__( - self, - window_size:int, - max_seq_num:int, - timeout_ms:2000, - networkLayer:NetworkLayer, - ) -> None: - self.window_size = window_size - self.max_seq_num = max_seq_num - self.package_list:list[Package] = [None] * (self.max_seq_num + 1) - self.base_num = 1 - self.next_seq_num = 1 - self.timeout_ms = timeout_ms - self.networkLayer = networkLayer - self.timer = None + self, + window_size:int, + max_seq_num:int, + timeout_ms:2000, + networkLayer:NetworkLayer, + ) -> None: + self.window_size = window_size + self.max_seq_num = max_seq_num + self.packet_list:list[Packet] = [None] * (self.max_seq_num + 1) + self.base_num = 1 + self.next_seq_num = 1 + self.timeout_ms = timeout_ms + self.networkLayer = networkLayer + self.timer = None ``` - 上层调用 @@ -171,10 +171,10 @@ class NetworkLayer: if self.next_seq_num >= self.base_num + self.window_size: return False - self.package_list[self.next_seq_num] = Package(data, self.next_seq_num) + self.packet_list[self.next_seq_num] = Packet(data, self.next_seq_num) self.udt_send( - self.package_list[self.next_seq_num].data, - self.package_list[self.next_seq_num].seq_num + self.packet_list[self.next_seq_num].data, + self.packet_list[self.next_seq_num].seq_num ) if self.base_num == self.next_seq_num: self.timer = time.time() @@ -196,7 +196,7 @@ class NetworkLayer: print(f"将base_num设置为下一个序列编号。") self.timer = None else: - print(f"将base_num设置为{self.package_list[self.base_num].seq_num}。") + print(f"将base_num设置为{self.packet_list[self.base_num].seq_num}。") ``` - 向下层发送数据 @@ -229,8 +229,8 @@ class NetworkLayer: seq_index = self.base_num while seq_index < self.next_seq_num: self.udt_send( - self.package_list[seq_index].data, - self.package_list[seq_index].seq_num + self.packet_list[seq_index].data, + self.packet_list[seq_index].seq_num ) seq_index += 1 ``` @@ -242,7 +242,7 @@ class NetworkLayer: show = [] seq_index = self.base_num while seq_index < self.next_seq_num: - show.append(self.package_list[seq_index].seq_num) + show.append(self.packet_list[seq_index].seq_num) seq_index += 1 return show ``` diff --git a/Labs/Lab3/src/Sender.py b/Labs/Lab3/src/Sender.py index b546d86..c9f58f2 100644 --- a/Labs/Lab3/src/Sender.py +++ b/Labs/Lab3/src/Sender.py @@ -2,16 +2,18 @@ import time import socket import random -class Package: +class Packet: def __init__(self, data:str, seq_num:int) -> None: self.data = data self.seq_num = seq_num + class ApplicationLayer: def __init__(self, data_len:int=5000) -> None: self.data_len = data_len self.data_to_send = ["data{:0>4d}".format(i) for i in range(data_len)] + class NetworkLayer: def __init__(self, host:str, port:int) -> None: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -34,7 +36,8 @@ class NetworkLayer: def close(self): self.client_socket.close() self.socket.close() - + + class Sender: def __init__( self, @@ -45,7 +48,7 @@ class Sender: ) -> None: self.window_size = window_size self.max_seq_num = max_seq_num - self.package_list:list[Package] = [None] * (self.max_seq_num + 1) + self.packet_list:list[Packet] = [None] * (self.max_seq_num + 1) self.base_num = 1 self.next_seq_num = 1 self.timeout_ms = timeout_ms @@ -58,10 +61,10 @@ class Sender: if self.next_seq_num >= self.base_num + self.window_size: return False - self.package_list[self.next_seq_num] = Package(data, self.next_seq_num) + self.packet_list[self.next_seq_num] = Packet(data, self.next_seq_num) self.udt_send( - self.package_list[self.next_seq_num].data, - self.package_list[self.next_seq_num].seq_num + self.packet_list[self.next_seq_num].data, + self.packet_list[self.next_seq_num].seq_num ) if self.base_num == self.next_seq_num: self.timer = time.time() @@ -79,7 +82,7 @@ class Sender: print(f"将base_num设置为下一个序列编号。") self.timer = None else: - print(f"将base_num设置为{self.package_list[self.base_num].seq_num}。") + print(f"将base_num设置为{self.packet_list[self.base_num].seq_num}。") def udt_send(self, data:str, index:int): index_data = '{:0>3d} '.format(index) + data @@ -100,8 +103,8 @@ class Sender: seq_index = self.base_num while seq_index < self.next_seq_num: self.udt_send( - self.package_list[seq_index].data, - self.package_list[seq_index].seq_num + self.packet_list[seq_index].data, + self.packet_list[seq_index].seq_num ) seq_index += 1 @@ -109,7 +112,7 @@ class Sender: show = [] seq_index = self.base_num while seq_index < self.next_seq_num: - show.append(self.package_list[seq_index].seq_num) + show.append(self.packet_list[seq_index].seq_num) seq_index += 1 return show diff --git a/Labs/Lab3/实验3_21281280_柯劲帆_物联网.pdf b/Labs/Lab3/实验3_21281280_柯劲帆_物联网.pdf index 10f61a6..509d369 100644 Binary files a/Labs/Lab3/实验3_21281280_柯劲帆_物联网.pdf and b/Labs/Lab3/实验3_21281280_柯劲帆_物联网.pdf differ