- 博客(74)
- 资源 (64)
- 收藏
- 关注
转载 python3 队列 queue
Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递基本FIFO队列class Queue.Queue(maxsize=0)FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中...
2019-04-30 16:04:20 636
转载 linux c 中 当前函数名 文件名 可变参 不定参 宏使用
在linux编程中,当文件数量变的众多之后,使用gdb调试就是一场灾难。因此在程序中加入合理的打印信息,定位错误出现的文件名,函数名,行号等信息,能更高效的定位到问题的所在。下面定义了宏,分别是WARNING,INFO,ERROR,SHOW_TIME,DEBUG等。利用了 __FILE__,_FUNCTION__, __LINE__等变量。。。_FILE__,__FUNCTI...
2019-04-29 16:34:53 827
转载 linux c 实现try catch异常捕获
前言:像如java这样的面相对象语言,异常处理机制让其代码更具健壮性,可以代码捕获到如算术异常,空指针异常等,俘获并能够在预知情况下进行相应处理。那么对于C而言,是否能实现其功能?简要分析:Linux有对线程或者进程退出时有一种信号量机制,而默认情况下,这种signal是系统自己处理的,而最统一的处理方式是exit,而至于什么原因退出这个完全取决于什么样的信号。至于linux下的这些s...
2019-04-28 20:25:25 3880
转载 epoll与tornado 简介
网络IO的模型中,之前介绍了select模型。select 确实是一个简明好用的模型。可是现在的服务器却越来越少采取这样的模型,原因之一就是它的性能让人担忧。虽然后来升级了poll模型,本质上还是和select模型类似。当然,当一个技术逐渐被人放弃的时候,很大程度上是有了更好的替代方案。没错,还有select/poll模型更好的网络IO模型,就是今天介绍的主角—Epoll。在很多地方,epoll都...
2019-04-28 16:54:48 1396
转载 python3 异步 非阻塞 IO多路复用 select poll epoll 使用
有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的。下面记录下分别基于Select/Poll/Epoll的echo server实现。Python Select Server,可监控事件数量有限制:#!/usr/bin/python# -*- coding: utf-8 -*-import selectim...
2019-04-28 11:15:25 654
转载 python 信号模块 signal
在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解。signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时发出SIGALRM等。要注意,signal包主要是针对UNIX平台(比如Linux, MAC OS),而Windows内核中由于对信号机制的支持不充分,所以在Windows上的Python不能发挥信号...
2019-04-28 10:33:41 570
转载 python 命令行参数处理 getopt模块详解
有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实现的)。在C语言里,main函数的原型为int main(int argc, char **argv),这里主要指linux平台, argc指的是命令行传入的参数个数(程序的name为第一个参数),而argv则是一个指针数...
2019-04-28 10:14:29 408
转载 linux c 命令行参数处理函数 getopt()和getopt_long()
在实际编程当中,自己编写代码处理命令行参数是比较麻烦且易出错的。一般我们会直接使用getopt()和getopt_long()函数,下文将介绍具体的使用方法。getopt()getopt()用于处理”单字母“选项,如-a,-t等。函数声明如下:#include <unistd.h> ...
2019-04-28 09:50:09 427
转载 python3 编写守护进程程序思路
1. fork子进程,父进程退出通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端和shell都是进程,shell进程是终端进程的子进程,通过ps命令可以很容易的查看到。在这个shell环境下一开始执行的程序都是shell进程的子进程,自然会受到shell进程的影响。在程序里fork子进程后,父进程退出,对了shell进程来说,这个父进程就算执行完了,而...
2019-04-26 16:17:22 1035
转载 Linux 守护进程的原理与实现
一、守护进程概述在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。二、守护进程简...
2019-04-26 16:10:16 367
转载 高并发网络编程之epoll详解
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。sel...
2019-04-26 15:35:53 140
转载 简单剖析B树(B-Tree)与B+树
注意:首先需要说明的一点是:B-树就是B树,没有所谓的B减树引言我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存...
2019-04-26 15:10:35 207 1
转载 图解 二叉查找树 红黑树
红黑树,对很多童鞋来说,是既熟悉又陌生。熟悉是因为在校学习期间,准备面试时,这是重点。然后经过多年的荒废,如今已经忘记的差不多了。如果正在看文章的你,马上快要毕业,面临着找工作的压力;又或者你觉得需要将这块知识重新复习一遍;又或者只是看看,那么恭喜你,赚到了。那么我将带领大家重新认识下红黑树,用简单的语言,搞懂红黑树。在学习红黑树之前,咱们需要先来理解下二叉查找树(BST)。二叉查找...
2019-04-26 14:06:25 237
转载 Windows软件授权管理工具 slmgr命令详解
slmgr是Software LicenseManger的简称,是Windows软件授权管理工具。slmgr是管理系统激活和密钥、证书的主要组件。slmgr的所有功能都是通过slmgr.vbs提供的,采用VBScript命令行方式执行。图形界面中许多与该命令行相关的激活行为,比如系统属性等,都是通过调用slmgr.vbs脚本来执行授权操作。即使你在COMMAND下使用slmgr命令行,其运行结果或...
2019-04-24 10:45:33 8384
转载 变量命名规范 匈牙利 下划线 骆驼 帕斯卡
匈牙利命名法其基本原则是,变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分广泛应用于像MicrosoftWindows这样的环境中。Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的Microsoft程序员查尔斯•西蒙尼(Charles Simonyi)提出的。匈牙利命名法通过在变量名...
2019-04-24 07:51:33 1591
转载 反射型 DDoS 攻击的原理和防范措施
随着僵尸网络的兴起,同时由于攻击方法简单、影响较大、难以追查等特点,分布式拒绝服务攻击(DDoS,Distributed Denial of Service)得到快速壮大和日益泛滥。成千上万主机组成的僵尸网络为 DDoS 攻击提供了所需的带宽和主机,形成了规模巨大的攻击和网络流量,对被攻击网络造成了极大的危害。更加可怕的是 DDoS 并没有彻底的解决办法,只能依靠各种手段和各个层次的防护进行缓解...
2019-04-22 16:25:00 3684
转载 百度搜索 带网页特效的关键词
百度网页上也是带有特效的,不过,这个特效技术早在很久以前就有了的,只不过很少有人知道,百度本身也并没有进行宣传过。看来百度是想在网友们浏览网页时突然跳出来一些特效,带来惊喜的。小面就来看看这些特效都有哪些在 百度搜索框 输入以下 关键词,才会触发的翻转效果:网页翻转过来duang抖动晃动摇一摇效果:网页左右摇晃跳跃效果:网页上下跳跃...
2019-04-22 15:31:47 559
转载 wireshark 总体结构
1. 总体结构wireshark的总体结构如下图所示。2. 功能模块 模块名 功能 源码子目录 GTK/Qt 处理所有的用户输入/输出(所有的窗口,对话框等等) /ui GTK: /ui/gtk Qt: /ui/qt Core ...
2019-04-22 11:31:17 975
转载 wireshark C插件开发
1. Wireshark对C插件的支持每个解析器解码自己的协议部分, 然后把封装协议的解码传递给后续协议。因此它可能总是从一个Frame解析器开始, Frame解析器解析捕获文件自己的数据包细节(如:时间戳), 将数据交给一个解码Ethernet头部的Ethernet frame解析器, 然后将载荷交给下一个解析器(如:IP), 如此等等. 在每一步, 数据包的细节会被解码并显示.可以...
2019-04-22 10:46:07 3133 1
转载 wireshark协议解析器 源码分析 封装调用
源码分析Wireshark启动时,所有解析器进行初始化和注册。要注册的信息包括协议名称、各个字段的信息、过滤用的关键字、要关联的下层协议与端口(handoff)等。在解析过程,每个解析器负责解析自己的协议部分, 然后把上层封装数据传递给后续协议解析器,这样就构成一个完整的协议解析链条。解析链条的最上端是Frame解析器,它负责解析pcap帧头。后续该调用哪个解析器,是通过上层协议注册han...
2019-04-22 10:08:56 7613 5
转载 ping 用数字串代替IP地址
Ping命令,大家都比较熟悉,它常被用来测试局域网的连通状态。“Ping+IP地址”是大家最常用的一种命令格式,但大家是否注意过Ping命令中的IP地址呢?这里面可是有很多学问和讲究的,下面笔者就为大家介绍一下隐藏在Ping命令中的这些秘密。“.0”可以有条件省略大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了...
2019-04-20 15:49:17 914
转载 Qt qCompress和qUncompress 压缩和解压文件
利用Qt的qCompress和qUncompress来压缩和解压文件有个特点,用qCompress压缩的文件不能直接用别的软件来解压,需要经过处理,否则只能利用Qt的qUncompress来解压,因此可以进行一些特殊的使用头文件#include <QByteArray>#include <QDebug>#include <QFile>#incl...
2019-04-19 11:22:30 4483
转载 服务发现 注册中心 consul 的介绍、部署和使用
什么是服务发现微服务的框架体系中,服务发现是不能不提的一个模块。我相信了解或者熟悉微服务的童鞋应该都知道它的重要性。这里我只是简单的提一下,毕竟这不是我们的重点。我们看下面的一幅图片:图中,客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,以往的做法是配置是配置文件中,或者有些配置在数据库中。这里就带出几个问题:需要配置N个服务的网络位置,加大配置的复杂性...
2019-04-18 14:13:07 270
转载 用Visio画流程图
初级1:基本流程图主要用于创建流程图、顺序图、信息跟踪图、流程规划图和结构预测图,包含了形状、连接线和链接。步骤:(1)打开Visio,单击“类别”->“流程图”->“基本流程图”->“创建”。(2)根据所要展示的流程中的每个步骤,将流程图形状拖到绘图页上。(3)通过将鼠标指针停在第一个形状上连接流程图形状,然后单击指向形状(想要连接到的形状)出现的小...
2019-04-18 09:48:28 31140 1
转载 gdb汇编调试c程序
关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1...
2019-04-17 21:58:28 433 1
转载 linux c 内存分配函数
1、void *alloca(size_t size),用来配置size个字节的内存空间,和mallac/calloc不同的是,alloca是从栈空间(stack)中配置内存,因此在函数返回时会自动释放此空间。 int*a; a = (int*)alloca(sizeof(int)); *a = 1; 2、void *call...
2019-04-17 11:08:09 870
转载 linux查看网卡速率
我们都知道ifconfig -a 可以列出所有网卡,但是怎么判读是千兆网卡还是百兆网卡呢?1. 判断是千兆网卡还是百兆网卡 ethtool ethx 查看支持的速率实际网卡速率可以看Speed 100Mb/s;问题来了,是不是千兆网卡Speed一定是1000M呢?不一定哟,网卡速率和网线,交换机端口速率都有关系,看到Auto-negotiation字段了吧,on表示开启...
2019-04-16 17:12:20 36033
转载 nohup和&后台运行,进程查看及终止
1.nohup用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。 如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。 如果没有文件能创建或打开以用于追加,那么 Comman...
2019-04-16 16:30:23 2321
转载 100M与1000M网络的硬件区别
我们用网线的人都知道网线通常分五类线、超五类、六类、超六类这几种,今天我们要探讨的是千兆网线,也是我们在实际使用过程中容易忽略的一些问题。首先我们要知道千兆网线和百兆网线有什么区别?最直观的,网线外面会有标注,标有CAT5E或者CAT6的是千兆网线,如果是CAT5就是百兆了。千兆网络至少要用超五类线,现实中主要用的是六类线。而五类网线通常是百兆网线。六类线的显著...
2019-04-16 15:33:52 8363
转载 抓包工具tcpdump用法说明
tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。例如:shell> tcpdump -nn -i eth0 icmp下面是详细的tcpdump用法。1.1 tcpdump选项它的命令格式为:tcpdump [ -Den...
2019-04-16 13:41:30 230
转载 linux c 打印错误信息error errno perror和strerror的区别
1 perror头文件:stdio.hvoid perror(const char *msg);它是基于errno的当前值,在标准错上产生一条出错信息,然后返回。它先输出由msg字符串,然后是一个冒号后头接着对应于errno值的出错信息。例: perror("sendto");打印出:sendto: Permission denied2 strerror头文件:st...
2019-04-16 13:37:58 3822
转载 使用 FRP 反向代理实现 Windows 远程连接
什么是 FRPFRP (Fast Reverse Proxy)是一个可用于内网穿透的高性能的反向代理应用,支持 TCP , UDP , HTTP , HTTPS 协议。下载https://github.com/fatedier/frp/releases准备工作1. 一台拥有公网 IP 的设备(云服务器、VPS ……)这就是一台反向代理服务器,作为外网设备访问内网设备的一座...
2019-04-16 11:36:37 2208
转载 linux ssh命令详解
选项:-l login_name指定登入于远程机器上的使用者,若没加这个选项,而直接打 ssh lost 也是可以的,它是以读者目前的使用者去做登入的动作。 例如: ssh –l shie mouse.oit.edu.tw-c blowfish|3des在期间内选择所加密的密码型式。预设是3des,3des(作三次的资料加密) 是用三种不同的密码键作三次的加密-解密-加密。 b...
2019-04-16 11:03:16 348
转载 linux ssh -R 代理不同内网主机互连
一、搭建SSH方向代理准备:一台外网主机 两台不同内网的主机局域网主机(虚拟主机): 192.168.6.233 CentOS 6.7阿里云服务器:120.25.68.60 CentOS 6.71. 阿里云服务器120.25.68.60上需要修改sshd_config配置文件:[root@120.25.68.60 ~]# vi /etc/ssh/sshd_con...
2019-04-16 10:30:26 1062 1
转载 CentOS 修改/etc/resolv.conf 重启network后又恢复到原来的状态
问题描述:CentOS 修改/etc/resolv.conf 执行service network restart后,/etc/resolv.conf又恢复到原来的状态解决方法:/etc/resolv.conf保存DNS是暂时的,当重新启动network时,/etc/resolv.conf恢复到了初始状态,要想更改,可尝试下边的方法。修改 /etc/sysconfig/network-scr...
2019-04-15 20:28:48 1990
转载 SSH登录慢问题
SSH 登录太慢可能是 DNS 解析的问题,默认配置下 sshd 初次接受 ssh 客户端连接的时候会自动反向解析客户端 IP 以得到 ssh 客户端的域名或主机名。如果这个时候 DNS 的反向解析不正确,sshd 就会等到 DNS 解析超时后才提供 ssh 连接,这样就造成连接时间过长、ssh 客户端等待的情况,一般为10-30秒左右。有个简单的解决办法就是在 sshd 的配置文件(sshd...
2019-04-15 19:56:49 182
转载 nsswitch.conf文件详解
一、nsswithch.conf:服务搜索顺序文件/etc/nsswitch.conf(nameserviceswitchconfiguration,名字服务切换配置)规定通过哪些途径以及按照什么顺序通过这些途径来查找特定类型的信息。还可以指定某个方法奏效或失效时系统将采取什么动作。Nsswitch.conf中的每一行配置都指明了如何搜索信息,每行配置的格式如下:Info: ...
2019-04-15 19:56:17 666
转载 make: Nothing to be done for `everything'.的原因
正常情况下,当文件没有更新且已经编译过时,再次make就会报这个错误,表示文件未更新,不需要编译。如果异常情况没有检测到更新文件,或者想要强制重新编译,只需要make clean,再次编译即可。...
2019-04-15 15:12:13 1297
转载 linux 的sleep()、usleep()、nanosleep()函数的区别
三种睡眠时间函数的区别如下:sleep()-------以秒为单位unsigned int sleep(unsigned int seconds);sleep()非系统调用,sleep()是在库函数中实现的,它是通过alarm()来设定报警时间,使用sigsuspend()将进程挂起在信号SIGALARM上。sleep()只能精确到秒级上。sleep()会令目前的进程暂停,直...
2019-04-15 14:40:44 920
转载 数据段、数据报、数据包、帧的区别与联系
帧与数据包首先不容易理解的是数据包和帧。数据包,就是从最上层,一层一层封装,直到网络层的,最后借由数据链路层发送出去的数据单元。帧,是数据链路层的传输单元。这么一看,数据包和帧好像没什么不一样,好像数据传递的都是一样的。可是为什么会把它们区分开呢?学习 TCP/IP 协议的同学应该都知道,数据链路层中有 MTU 这样一个东西,它是帧最大传输单元。数据包是一个完整的数据单元,但是...
2019-04-15 13:28:08 3815
字体wps.zip 用于linux wps 使用
2020-03-16
Nat_Type_Tester_.rar
2019-12-26
msfupdate.erb
2019-11-04
fuzz工具 teenage mutant ninja turtles
2019-01-14
Sybase ASE 12.5.4 PC 客户端
2018-12-12
Win32 OpenSSL
2015-04-18
ActivePerl
2015-04-18
编写 Debugging Tools for Windows 扩展 实例
2014-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人