修改了Packet类名称

This commit is contained in:
Jingfan Ke 2024-04-16 15:38:32 +08:00
parent 8d23463809
commit 95d61082e2
3 changed files with 36 additions and 33 deletions

View File

@ -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
```

View File

@ -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)
@ -35,6 +37,7 @@ class NetworkLayer:
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