开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 797|回复: 5
收起左侧

[技术专题] UDP灌包模块及源码(支持多线程调用)

[复制链接]
结帖率:50% (3/6)
发表于 2026-4-15 20:07:38 | 显示全部楼层 |阅读模式   江苏省南京市
  • 本模块不依赖任何第三方支持库,仅使用系统DLL(ws2_32、kernel32)。
  • <span]支持多线程(每次调用创建独立套接字),速率准确,可通过停止标志随时停止。

参数限制


参数
有效范围
说明

IP地址标准IPv4字符串如 "192.168.1.100",不支持域名
端口1 ~ 655350为非法
速率Mbps> 0支持小数,如 1.5
包大小1 ~ 65507默认1400,UDP最大65507字节

  • 包大小建议不超过网络MTU(通常1500),否则可能被分片或丢弃。
  • 速率过低(< 0.1 Mbps)可能导致发包间隔过大,CPU占用依然存在。

一、初始化与清理
  • 必须调用 UDP_初始化()
    在所有发包操作之前,必须先调用一次 UDP_初始化()。建议放在 __启动窗口_创建完毕 或主线程启动位置。初始化失败时(返回假),不能进行任何发包。
  • 程序退出前必须调用 UDP_清理()
    在窗口销毁或程序结束前,确保调用 UDP_清理() 释放 Winsock 资源。务必确保所有发包线程已经停止,否则可能导致崩溃或资源泄漏。
  • 不要重复初始化
    模块内部已做防重复处理,但建议在主线程中只调用一次,不要在多个线程中同时调用初始化。

二、停止标志(红绿灯机制)
  • 停止标志必须为程序集或全局变量
    不能使用局部变量,否则线程无法从外部修改它。
  • 停止标志必须设为“参考”(传址)
    调用模块时,传递的停止标志参数必须勾选“参考”,这样模块内部才能读取外部变量的实时值。在模块代码中已设置好,调用时只需传入变量名即可。
  • 启动新任务前重置停止标志为假
    每次启动发包前,必须将对应的停止标志变量赋值为 假(绿灯),否则发包循环不会开始。
  • 停止任务时,将停止标志赋值为真
    外部需要停止发包时,执行 停止标志 = 真,模块内部的循环会立即检测到并退出。
  • 一个停止标志只能控制一个任务
    多线程并发发包时,每个任务必须使用独立的停止标志变量。共用同一个标志会导致一个停止信号误停所有任务。如果你想全部任务停止的话,就共用同一个标志。

三、多线程使用
  • 模块内部每个发包任务创建独立套接字
    因此多个线程可以同时调用发包子程序(不同目标IP或相同目标IP),不会相互干扰。无需担心套接字冲突。
  • 线程池投递任务时传递索引
    如果使用鱼刺线程池或YY线程池,建议将任务ID(索引)作为参数传递,线程内根据索引访问全局数组中的停止标志。不能直接将局部变量作为停止标志传递,否则外部无法控制。
  • 等待线程退出后再清理
    程序退出前,先将所有停止标志设为真,然后延时 500~1000 毫秒(给线程退出时间),最后调用 UDP_清理()。
  • 避免高频率启动/销毁大量线程
    如果需要频繁创建短任务,建议使用线程池复用线程,避免频繁创建销毁的开销。

四、速率准确性
  • 高精度版

    • 采用纯自旋等待,CPU占用较高,但速率较为准确(误差 < 1%)。
    • 如果实际速率与设定值偏差较大,请检查目标机器的防火墙或限流策略,以及网络拥塞情况。
    • 不要在高精度循环中调用 处理事件() 或 延时(),会破坏精度。

  • 低CPU版
    • 采用批量发送+延时策略,CPU占用极低,但速率可能有 ±5% 的偏差。
    • 可通过修改模块内部的 校准系数(默认为1.12)来微调实际速率。
    • 批间隔固定为30毫秒,若需要更平滑的发送,可适当减小批间隔(例如20ms),但会增加CPU占用。



UDP灌包模块1.0.rar

3 KB, 下载次数: 11, 下载积分: 精币 -2 枚

UDP灌包模块源码.rar

5.15 KB, 下载次数: 12, 下载积分: 精币 -2 枚


签到天数: 5 天

发表于 6 小时前 | 显示全部楼层   贵州省铜仁市
谢谢楼主分享!!!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 1 天

发表于 5 天前 | 显示全部楼层   广东省梅州市
学习学习.................
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 1 天

发表于 2026-4-21 07:53:41 | 显示全部楼层   浙江省宁波市
6666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 5 天

发表于 2026-4-16 14:58:26 | 显示全部楼层   山东省济宁市
这算是ddos原理吗
回复 支持 反对

使用道具 举报

签到天数: 7 天

发表于 2026-4-16 09:20:48 | 显示全部楼层   河北省石家庄市
支持域名就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表