首页 文章 精选 留言 我的

精选列表

搜索[工具库],共10000篇文章
优秀的个人博客,低调大师

IPerf——网络测试工具介绍与源码解析(1)

IPerf是一个开源的测试网络宽带并能统计并报告延迟抖动、数据包丢失率信息的控制台命令程序,通过参数选项可以方便地看出,通过设置不同的选项值对网络带宽的影响,对于学习网络编程还是有一定的借鉴意义,至少可以玩上一段时间。 IPerf开始出现的时候是在03年,版本是1.7.0,在网上找到的仅有的系列源码解析篇http://blog.chinaunix.net/uid/11568125/cid-131106-abstract-1.html就是基于1.7.0 进行介绍和解析的,貌似1.7.0还是使用C++编写比较多,后面到了IPerf2版本,C++和C结合,现在出来一个法国人团队另起炉灶重构出不向下兼容的IPerf3,他们开了一个论坛专门讨论维护,但因为是法语所以跟我也无法沟通,所以也没怎么上去看,一开始入门的时候就只能上处链接的文章,还好有所帮助。 现在IPerf的官方网站为:https://iperf.fr/ IPerf的一些特性: 开源,每个版本的源码都能进行下载和研习; 跨平台,支持Windows Linux MacOS Android,现有支持不同平台的IPerf版本,UWP,Docker...很早之前就出来了一个JPerf(在IPerf的基础上添加了界面),有兴趣的同学可以找来看看; 支持TCP、UDP协议,包括IPV4和IPV6,最新的IPerf还支持SCTP协 TCP 测试网络带宽; 报告MSS(最大报文段长度)、MTU(最大传输单元)的大小,在Windows上不支持; 支持通过套接字缓冲区修改TCP窗口大小; 支持多线程并发; UDP 客户端可创建指定大小的带宽流; 统计数据包丢失、延迟抖动率等信息 IPerf的简单使用示例: IPerf通过选项 -c 和 -s 决定其当前是作为客户端程序还是作为服务端程序运行,当作为客户端程序运行时,-c 后面必须带所连接对端服务器的IP地址或域名 上面图片显示三种信息:本地设置信息,连接信息,传输信息,究竟其在程序设计中是如何打印出来的,看完接下来的源码解析希望你能够明白其中的原理 :) 下面列举一些比较常用的选项参数,想要知道更多的选项参数,请查看官方网站的文档说明 选项参数说明 [客户端] -c host 以客户端模式运行,连接到IPerf服务端运行的主机IP地址或域名 -t ; -i -t(timing)测试的时长;-i(interval)带宽报告周期性显示的间隔时间 -n 设置测试所发送的数据总量,#[KM] 覆盖-t选项 -d, -L 双向测试模式,客户端与服务端建立双向连接,并相互发送数据进行测试 -r, -L 交易模式,在客户端到服务端的测试结束后,执行服务端到客户端的测试 -P 设置客户端同时连接到服务端的并发数(在多线程允许的条件下) [服务端] -s 以服务端模式运行,等待客户端的连接请求 -D Unix平台以后台守护程序运行;Windows平台下以服务形式运行 -w 设置TCP窗口大小或UDP接收缓冲区大小为其指定的值

优秀的个人博客,低调大师

使用Chrome调试工具抢阿里云免费套餐

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/79467607 活动地址如下: https://free.aliyun.com/ntms/free/experience/getTrial.html 首先打开地址,需要登录,登陆后看到如下页面: 选择个人免费套餐,这个套餐需要实名认证,每个账号只能领取一次,但是据我实验新的账号即便绑定同一个淘宝账号还是可用的。 也有可能是下面这个页面,直接提示领取免费套餐: 注意红框中的在每天10点之前都是蓝色可用的状态,将按钮的class y-btn-disabled去掉即可看到实际效果。 在调试的时候由于有两种套餐会在js中切换,一种是299的,为了不造成干扰,我们直接将其干掉: 右键点击“立即领取”,然后检查元素,直接将如下元素删掉: <a class="free-btn y-btn-blue" href="javascript:void(0);" data-spm-anchor-id="5176.8526107.723146.5"> 立即领取 </a> 然后页面就没有这个按钮了,也不会造成干扰了。 切换回基础版标签,这里的领取按钮还在,F12打开调试窗口,切换到Console,如下: 我们就可以疯狂的模拟页面的点击操作了,主要是两个操作,一个是不成功后的提示说10点准时开始,一个是点击按钮抢套餐,我们把这两个按顺序排好然后js疯狂的点击页面就行了,最好是9点59分50秒左右开始,代码如下: for (var i=0; i<1000000; i++) { $(".free-btn").trigger("click"); $(".y-btn-close").trigger("click"); } 期间页面甚至浏览器都卡死了,这是js在疯狂点击页面的结果,10点过后,杀死chrome进程,启动chrome,ctrl+shift+t,重新进入了账户,再查看一下,可能免费套餐就已经到手了。

优秀的个人博客,低调大师

SocialFish-kali下社会工程学钓鱼工具

版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396726 参考:https://www.youtube.com/watch?v=hwMPsHkrS0M 必须需要的环境: Python 2.7 Wget from Python PHP sudo 可选系统: Kali Linux - Rolling Edition Linux Mint - 18.3 Sylvia Ubuntu - 16.04.3 LTS MacOS High Sierra cd /tmp git clone https://github.com/UndeadSec/SocialFish.git cd SocialFish sudo pip install -r requirements.txt python SocialFish.py 个人感受:用到了ngork,把本地的虚假资源,放到了公网上,提供给目标去访问,仿真度比较高,资源仿真度比较高,然后重点伪造域名或者欺骗域名,就可以了。

优秀的个人博客,低调大师

iOS: 音效和音乐的播放,封装的工具

在iOS中音频播放从形式上可以分为音效播放和音乐播放。前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度、循环等控制。后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制。在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放。 音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service)。System Sound Service是一种简单、底层的声音播放服务,但是它本身也存在着一些限制: 音频播放时间不能超过30s 数据必须是PCM或者IMA4格式 音频文件必须打包成.caf、.aif、.wav中的一种(注意这是官方文档的说法,实际测试发现一些.mp3也可以播放) 使用System Sound Service 播放音效的步骤如下: 调用AudioServicesCreateSystemSoundID( CFURLRef inFileURL, SystemSoundID* outSystemSoundID)函数获得系统声音ID。 如果需要监听播放完成操作,则使用AudioServicesAddSystemSoundCompletion( SystemSoundID inSystemSoundID, CFRunLoopRef inRunLoop, CFStringRef inRunLoopMode, AudioServicesSystemSoundCompletionProc inCompletionRoutine, void* inClientData)方法注册回调函数。 调用AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)或者AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)方法播放音效(后者带有震动效果)。 音乐 如果播放较大的音频或者要对音频有精确的控制则System Sound Service可能就很难满足实际需求了,通常这种情况会选择使用AVFoundation.framework中的AVAudioPlayer来实现。AVAudioPlayer可以看成一个播放器,它支持多种音频格式,而且能够进行进度、音量、播放速度等控制。首先简单看一下AVAudioPlayer常用的属性和方法: 属性 说明 @property(readonly, getter=isPlaying) BOOL playing 是否正在播放,只读 @property(readonly) NSUInteger numberOfChannels 音频声道数,只读 @property(readonly) NSTimeInterval duration 音频时长 @property(readonly) NSURL *url 音频文件路径,只读 @property(readonly) NSData *data 音频数据,只读 @property float pan 立体声平衡,如果为-1.0则完全左声道,如果0.0则左右声道平衡,如果为1.0则完全为右声道 @property float volume 音量大小,范围0-1.0 @property BOOL enableRate 是否允许改变播放速率 @property float rate 播放速率,范围0.5-2.0,如果为1.0则正常播放,如果要修改播放速率则必须设置enableRate为YES @property NSTimeInterval currentTime 当前播放时长 @property(readonly) NSTimeInterval deviceCurrentTime 输出设备播放音频的时间,注意如果播放中被暂停此时间也会继续累加 @property NSInteger numberOfLoops 循环播放次数,如果为0则不循环,如果小于0则无限循环,大于0则表示循环次数 @property(readonly) NSDictionary *settings 音频播放设置信息,只读 @property(getter=isMeteringEnabled) BOOL meteringEnabled 是否启用音频测量,默认为NO,一旦启用音频测量可以通过updateMeters方法更新测量值 对象方法 说明 - (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError 使用文件URL初始化播放器,注意这个URL不能是HTTP URL,AVAudioPlayer不支持加载网络媒体流,只能播放本地文件 - (instancetype)initWithData:(NSData *)data error:(NSError **)outError 使用NSData初始化播放器,注意使用此方法时必须文件格式和文件后缀一致,否则出错,所以相比此方法更推荐使用上述方法或- (instancetype)initWithData:(NSData *)data fileTypeHint:(NSString *)utiString error:(NSError **)outError方法进行初始化 - (BOOL)prepareToPlay; 加载音频文件到缓冲区,注意即使在播放之前音频文件没有加载到缓冲区程序也会隐式调用此方法。 - (BOOL)play; 播放音频文件 - (BOOL)playAtTime:(NSTimeInterval)time 在指定的时间开始播放音频 - (void)pause; 暂停播放 - (void)stop; 停止播放 - (void)updateMeters 更新音频测量值,注意如果要更新音频测量值必须设置meteringEnabled为YES,通过音频测量值可以即时获得音频分贝等信息 - (float)peakPowerForChannel:(NSUInteger)channelNumber; 获得指定声道的分贝峰值,注意如果要获得分贝峰值必须在此之前调用updateMeters方法 - (float)averagePowerForChannel:(NSUInteger)channelNumber 获得指定声道的分贝平均值,注意如果要获得分贝平均值必须在此之前调用updateMeters方法 @property(nonatomic, copy) NSArray *channelAssignments 获得或设置播放声道 代理方法 说明 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 音频播放完成 - (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error 音频解码发生错误 音频会话 事实上上面的播放器还存在一些问题,例如通常我们看到的播放器即使退出到后台也是可以播放的,而这个播放器如果退出到后台它会自动暂停。如果要支持后台播放需要做下面几件事情: 事实上上面的播放器还存在一些问题,例如通常我们看到的播放器即使退出到后台也是可以播放的,而这个播放器如果退出到后台它会自动暂停。如果要支持后台播放需要做下面几件事情: 1.设置后台运行模式:在plist文件中添加Required background modes,并且设置item 0=App plays audio or streams audio/video using AirPlay(其实可以直接通过Xcode在Project Targets-Capabilities-Background Modes中设置) 2.设置AVAudioSession的类型为AVAudioSessionCategoryPlayback并且调用setActive::方法启动会话。 AVAudioSession *audioSession=[AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil]; 3.为了能够让应用退到后台之后支持耳机控制,建议添加远程控制事件(这一步不是后台播放必须的) 前两步是后台播放所必须设置的,第三步主要用于接收远程事件,这部分内容之前的文章中有详细介绍,如果这一步不设置虽让也能够在后台播放,但是无法获得音频控制权(如果在使用当前应用之前使用其他播放器播放音乐的话,此时如果按耳机播放键或者控制中心的播放按钮则会播放前一个应用的音频),并且不能使用耳机进行音频控制。第一步操作相信大家都很容易理解,如果应用程序要允许运行到后台必须设置,正常情况下应用如果进入后台会被挂起,通过该设置可以上应用程序继续在后台运行。但是第二步使用的AVAudioSession有必要进行一下详细的说明。 在iOS中每个应用都有一个音频会话,这个会话就通过AVAudioSession来表示。AVAudioSession同样存在于AVFoundation框架中,它是单例模式设计,通过sharedInstance进行访问。在使用Apple设备时大家会发现有些应用只要打开其他音频播放就会终止,而有些应用却可以和其他应用同时播放,在多种音频环境中如何去控制播放的方式就是通过音频会话来完成的。下面是音频会话的几种会话模式: 会话类型 说明 是否要求输入 是否要求输出 是否遵从静音键 AVAudioSessionCategoryAmbient 混音播放,可以与其他音频应用同时播放 否 是 是 AVAudioSessionCategorySoloAmbient 独占播放 否 是 是 AVAudioSessionCategoryPlayback 后台播放,也是独占的 否 是 否 AVAudioSessionCategoryRecord 录音模式,用于录音时使用 是 否 否 AVAudioSessionCategoryPlayAndRecord 播放和录音,此时可以录音也可以播放 是 是 否 AVAudioSessionCategoryAudioProcessing 硬件解码音频,此时不能播放和录制 否 否 否 AVAudioSessionCategoryMultiRoute 多种输入输出,例如可以耳机、USB设备同时播放 是 是 否 注意:是否遵循静音键表示在播放过程中如果用户通过硬件设置为静音是否能关闭声音。 好了,基本的特点和属性已经介绍的差不多了,为此,我写了一个框架,专门用来播放音视频文件,地址如下: github:https://github.com/xiayuanquan/XYQPlayer cnblogs:http://www.cnblogs.com/XYQ-208910/p/6685412.html 程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式! 本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5662655.html ,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册