GBN-Python 项目使用教程

GBN-Python 项目使用教程

1. 项目目录结构及介绍

GBN-Python 项目的目录结构如下:

gbn-python/
├── __pycache__/
├── HarryPotter.txt
├── LICENSE
├── PDU.py
├── README.md
├── UDT.py
├── crc16.py
├── makefile
├── packet.py
├── receiver.py
├── sender.py
├── server.py
├── timer.py
└── 斗罗大陆.txt

目录结构介绍

  • pycache/: Python 编译后的字节码文件缓存目录。
  • HarryPotter.txt: 示例文件,用于测试文件传输。
  • LICENSE: 项目许可证文件,采用 Apache-2.0 许可证。
  • PDU.py: 定义了数据包(PDU)的格式和相关操作。
  • README.md: 项目的介绍文件。
  • UDT.py: 实现用户数据报协议(UDP)的相关功能。
  • crc16.py: 实现 CRC-16 校验功能。
  • makefile: 项目的 Makefile,用于自动化构建和测试。
  • packet.py: 实现数据包的组帧和提取功能。
  • receiver.py: 接收端程序,负责接收数据并发送 ACK。
  • sender.py: 发送端程序,负责发送数据并处理 ACK。
  • server.py: 服务器端程序,用于启动发送和接收进程。
  • timer.py: 实现计时器功能,用于超时重传。
  • 斗罗大陆.txt: 另一个示例文件,用于测试文件传输。

2. 项目启动文件介绍

server.py

server.py 是项目的启动文件,负责启动发送和接收进程。它通过调用 sender.pyreceiver.py 来实现文件的传输。

# server.py
import sender
import receiver

# 启动发送端
sender.start()

# 启动接收端
receiver.start()

sender.py

sender.py 是发送端程序,负责将文件数据打包并发送到接收端。它使用 GBN 协议来确保数据的可靠传输。

# sender.py
import socket
import PDU
import UDT
import _thread
import timer
import sys
import packet
import crc16
import time
import threading

# 发送函数
def send(sock, filename, IP_PORT, RECEIVER_ADDR):
    # 发送逻辑
    pass

# 启动发送端
def start():
    # 启动逻辑
    pass

receiver.py

receiver.py 是接收端程序,负责接收发送端发送的数据,并发送 ACK 确认。

# receiver.py
import socket
import packet
import crc16
import UDT
import sys
import time

# 接收函数
def receive(sock, filename, IP_PORT):
    # 接收逻辑
    pass

# 启动接收端
def start():
    # 启动逻辑
    pass

3. 项目的配置文件介绍

GBN-Python 项目没有明确的配置文件,但可以通过修改代码中的参数来调整项目的行为。例如,可以在 sender.pyreceiver.py 中调整窗口大小、超时时间等参数。

示例:调整窗口大小

sender.py 中,可以通过修改 window_size 来调整窗口大小:

# sender.py
window_size = 200  # 默认窗口大小

示例:调整超时时间

timer.py 中,可以通过修改 interval 来调整超时时间:

# timer.py
interval = 1  # 默认超时时间(秒)

通过这些调整,可以优化 GBN 协议的性能和可靠性。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值