二分队-写端口代码2

import socket
import time
import random
import string

# 定义一些常量
BUFFER_SIZE = 1024  # 发送缓冲区大小,这里是1KB
DATAGRAM_SIZE = 128  # 每个UDP数据包的大小
TARGET_BANDWIDTH_MBPS = 1  # 目标带宽,1 Mbps
PACKETS_PER_SECOND = TARGET_BANDWIDTH_MBPS * 1024 * 1024 / (8 * DATAGRAM_SIZE)  # 计算每秒需要发送的数据包数量

# 目标服务器的IP和端口
SERVER_IP = '127.0.0.1'  # 请替换为实际服务器IP
SERVER_PORT = 12345  # 请替换为实际端口


def generate_random_data(size):
    """生成随机数据"""
    random.choice(string.ascii_letters)
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(size)).encode()


def main():
    # 创建UDP套接字
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    print(f"Starting UDP bandwidth test to {SERVER_IP}:{SERVER_PORT} aiming for {TARGET_BANDWIDTH_MBPS} Mbps...")

    start_time = time.time()
    total_packets_sent = 0

    try:
        while True:
            # 生成随机数据
            data = generate_random_data(DATAGRAM_SIZE)

            # 发送数据包
            client_socket.sendto(data, (SERVER_IP, SERVER_PORT))

            total_packets_sent += 1

            # 控制发送速率以达到目标带宽
            elapsed_time = time.time() - start_time
            if elapsed_time >= 1:
                actual_bandwidth = (total_packets_sent * DATAGRAM_SIZE * 8) / (elapsed_time * 1024 * 1024)
                print(f"Actual bandwidth: {actual_bandwidth:.2f} Mbps")

                total_packets_sent = 0
                start_time = time.time()

            time.sleep(1 / PACKETS_PER_SECOND)  # 等待,控制发送频率

    except KeyboardInterrupt:
        print("\nBandwidth test interrupted by user.")
    finally:
        client_socket.close()


if __name__ == "__main__":
    main()

import socket

# 服务器地址和端口
SERVER_IP = '0.0.0.0'  # 监听所有可用网络接口
SERVER_PORT = 12345  # 与客户端脚本中的端口保持一致

# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定IP和端口
server_socket.bind((SERVER_IP, SERVER_PORT))

print(f"UDP server started on {SERVER_IP}:{SERVER_PORT}")

try:
    while True:
        # 接收数据和发送者地址
        data, addr = server_socket.recvfrom(1024)  # 1024是缓冲区大小,可根据实际情况调整
        print(f"Received data from {addr}: {data.decode('utf-8')}")  # 解码并打印接收到的数据

except KeyboardInterrupt:
    print("\nServer stopped by user.")
finally:
    server_socket.close()
 

QGDW 12156-2021 应急救援基干分培训及量化考评规范是针对应急救援基干分开展培训和进行考评所制定的规范。该规范的主要目的是为了提高应急救援工作的效率和水平,确保在灾害和紧急情况下能够快速、有效地展开救援行动。 培训是保证应急救援基干分实力和能力的重要手段,因此在规范中明确了培训的内容和要求。首先,规范要求对基本救援知识、应急处置程序和安全防护等方面进行系统、全面的培训,确保每位成员具备必备的救援技能。其次,规范要求培训中要加强实操训练,通过模拟演练和实地训练提升应急处置能力。同时,规范还明确了培训的周期和频率,要求定期组织培训,加强成员的培训和训练更新。 考评是评估应急救援基干分能力和运行状况的重要手段,因此规范中也明确了考评的方式和要求。规范要求采取定期考核和实地考察相结合的方式,对各个岗位的成员进行综合评估,包括技能水平、应急响应能力、工作质量等方面。考评结果将作为成员晋升、奖惩和评优评先的依据,激励成员积极参与培训和提高自身能力。 总而言之,QGDW 12156-2021 应急救援基干分培训及量化考评规范的出台,将有力推动应急救援工作的发展,提高基干分的救援能力和应对能力,进一步增强社会的应急防范和安全保障能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值