自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

davidsu33的专栏

To be or not to be, It's a problem!!!

  • 博客(525)
  • 资源 (13)
  • 收藏
  • 关注

转载 TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)

我们在学习TCP/IP协议时都知道,TCP报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样IP数据报在长度超过一定值时也会发生分片,在接收端再将分片重组。    我们先来看两个与TCP报文段分段和IP数据报分片密切相关的概念。    MTU(最大传输单元)    MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节

2017-01-17 17:31:30 2367

转载 MSL(Max Segment Lifetime) TTL(Time to Life) RTT(Round-Trip Time)

一、  msl、ttl及rtt的区别   1、 MSL 是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文 (segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文;   2、ip头中有一个TTL域,TTL是

2017-01-17 17:09:22 2901

转载 TCP UDP传输原理 及 数据块,分节,分组,数据报,数据包的区别

关于TCP输出:     每个TCP套接口有一个发送缓冲区,当应用程序调用write时,内核将应用程序的缓冲区的数据拷贝到TCP的发送缓冲区,(如果write成功返回,仅仅表示应用程序的缓冲区已经全部拷贝到TCP的发送缓冲区,说明此时应用程序的缓冲区中的数据可以丢弃,并不表示TCP的数据已经成功发送)TCP以对方MSS(maximum segment size)大小或者更小发送数据块给IP,并

2017-01-17 16:46:04 884

原创 boost

/*数据结构类:any (变体数据)bimap (双向map)tuple(元祖)tribool (三态)variant (有限类型的变体数据 boost::variant,更类似union)heap (优先级数据结构,跟STL的heap一样)multi_index (多维索引)特定领域类:date_time (时间日期)crc (冗余计算码)

2016-11-30 20:46:03 273

转载 C++中typename和class的区别

在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ

2016-11-25 11:05:41 232

原创 golang中encoding/xml的使用注意事项

1.使用xml.Name的第一个名称作为整个XML文档的根节点。2.凡是需要解析的XML内容,需要使用结构体的tag属性,反射出xml的特性,包含xml的名称,是否是属性、注释等。3.凡是需要解析的节点,结构体的成员名称,首字母必须要大些4.可以直接跳跃解析的父节点(该父节点只存在逻辑结构,并不存储任何数据或者属性),可以使用>来表征。golang的文档上的例子ty

2016-11-11 11:20:53 6265 2

原创 golang-encoding模块学习

//Golang中encoding的用法package mainimport ( "encoding/binary" "bytes" "fmt" "encoding/hex")func main() { pi := 3.1415926 buf := bytes.Buffer{} //使用

2016-11-09 22:54:50 4554

原创 读取windows上的硬件信息

需要读取windows上所有的硬件信息,本来打算直接使用python的wmi实现,但是发现wmi是无法直接读取显卡的,所以使用了最简单的方案,直接用dxdiag来读取例子:dxdiag /t d:\tmp.txt注意事项:1.生成的txt必须是全路径2.生成的过程有延时,需要等待生成硬件统计信息之后,直接解析文件即可

2016-11-09 17:06:42 2406

原创 python中Crypto的注意事项

今天没事用python的AES测试的时候,重复调用AES的encrypt发现每次结果都不一样,原来原因就是因为AES构建的对象只能使用一次,不允许重复使用见如下代码:#coding=utf-8'''加密'''from Crypto.Cipher import AESfrom Crypto import Randomdef testAES(): bloc

2016-11-08 21:18:53 2500

原创 在gvim中使用YaHei Consolas Hybrid字体

1.首先将user_fonts下面的字体拷贝到Windows/Fonts下面2.修改_vimrc配置文件,set guifont=YaHei_Consolas_Hybrid:h10                 "设置字体:字号(字体名称空格用下划线代替)

2016-11-08 09:01:59 2486

转载 golang windows程序获取管理员权限(UAC )

golang windows程序获取管理员权限(UAC )在windows上执行有关系统设置命令的时候需要管理员权限才能操作,比如修改网卡的禁用、启用状态。双击执行是不能正确执行命令的,只有右键以管理员身份运行才能成功。为解决此问题,花了很长时间找了各种方法,最终找到一个简单的方法,双击也能执行成功了。过程如下:1> Go get github.com/akavel/rsrc2

2016-11-07 22:52:05 3108 2

原创 csrf(xsrf)跨站点请求伪造

一.CSRF是什么?  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取

2016-11-04 11:29:49 552

转载 IIS上通过python的CGI模块 执行python脚本

一、首先要在Win7下安装好IIS细节访问http://wenku.baidu.com/view/148ab53567ec102de2bd89d2.htmlPython学习简明教程:http://sebug.NET/paper/python/index.html#userconsent#具体步骤如下:1、确保你的操作系统里

2016-11-03 15:23:45 3046

转载 IIS上执行通过python的CGI模块执行python脚本

首先,我们先要去官网下载 原生的 Python 2.7。为什么用 2.7,不用3.X。原因是 2.7 比较大众。而且,好多开发程序都是在此基础上进行的。而且,2.7 与 3.X 差不多。呵呵……其实,我想用它编译 QT。。。我们先上官网来下载,网址:https://www.python.org/。这里,我们下载 2.7.8。

2016-11-03 15:21:19 2058

原创 编写百度翻译工具,免得每次打开网页

#coding=utf-8'''百度翻译工具,使用百度翻译接口进行翻译,免得每次打开网页,这样直接解析更省力'''import requestsimport sysimport jsondef utf82u(s): return s.decode("utf-8")def main(): reload(sys) sys.setdefaultencodi

2016-11-02 16:01:44 1899

原创 使用go语言来下载蜻蜓fm上的歌曲,效率感觉还行

package mainimport ( "encoding/json" "errors" "fmt" "net/http" "io" "os" "path" "io/ioutil" "sync")//翻唱FM的URL:http://www.qingting.fm/#/vchannels/136962/programs/5659080//翻唱FM的ajax地址:htt

2016-10-31 21:17:04 1821

原创 pip使用本地缓存文件来安装包

一般我们直接使用pip来安装网络上的包文件,如果机器没有联网,但是已经有了现成的包,应该如何呢,这个时候,可以直接使用离线包来进行安装,安装方法pip install --help中有这么几个参数--no-index和--find-links--no-index 是忽略包索引(仅仅从--find-links的链接地址中去查找包)--find-links 如果指定某个机器的连接地址

2016-10-31 10:28:35 20302

转载 Windows计划任务执行时不显示窗口的问题

最近开发了工具,带界面的,需要定时执行的,为了方便直接用Windows计划任务做定时了。跑了一段时间发现,进程中也有,就是看不到程序的界面,进程的执行貌似也阻塞了。从网上查了下,发现时启动方式的问题,原来选择的不管是否登录都要运行,导致窗口类的应用启动出现问题,设置为只在登录时启动就好了。当然服务器上的用户不能注销。

2016-10-31 10:23:22 36670 9

原创 nodejs爬取蜻蜓fm的歌曲

例子爬取蜻蜓fm上的翻唱歌曲:代码不长,可以看看/** * Created by ds on 2016/10/30. */const http = require('http')const request = require('request')const async = require('async')const util = require('util')const _ =

2016-10-30 18:34:13 2392

转载 WebStorm2016.1破解

1.从官网下载WebStorm2016.1安装。https://download.jetbrains.com/webstorm/WebStorm-2016.1.exe2.下载破解补丁并解压,记住路径 补丁下载3.编辑WebStorm安装目录下 bin 文件夹中的 WebStorm.exe.vmoptions 与 WebStorm64.exe.vmoptions 文件

2016-10-28 08:57:53 1979

转载 go接口扩展注意事项

简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为。 如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明。Interface是一个方法的集合,它里面没有其他类型变量,而且Method只用定义原型 不用实现①接口定义1.命名时习惯以"er"结尾,如Printer Reader Wr

2016-10-27 21:21:18 713

原创 go语言实现接口,接受者应该是传值还是传引用(传引用兼容传值)

/*go语言中给接口赋值的时候,对象如果是值(对于引用的接受者处理不了)如果是指针,则可以自动实现值的处理 */package mainimport "fmt"//定义Integer类型type Integer inttype LessAddInf interface{ Less(n Integer) bool Add(n Integer) Integer}fun

2016-10-27 20:57:22 3200 1

转载 go语言的字符和字符串

Go语言中的字符在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。下面用一个简单的程序来演示字符类型:package mainimport ( "fmt" "reflect")func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := refl

2016-10-26 20:58:18 1236

原创 go语言Reader包封

package mainimport ( "io" "os" "strings")type rot13Reader struct { r io.Reader}//rot13将数字+13转化为字母,对该数字减13即可//通过这方方法,将其做成一个包封器(wrapper)func (this * rot13Reader)Read(bytes []byte) (n int,

2016-10-26 20:57:25 540

原创 go语言 grequests+goquery 简单爬虫,使用多协程并发爬取

/*下载工具*/package mainimport ( "fmt" //go语言版本的jquery "github.com/PuerkitoBio/goquery" "os" "sync" "strings" //go语言版本的request "github.com/levigross/grequests" "time" "strconv")var wg sync

2016-10-26 08:38:41 4317

原创 golang中协程同步sync.waitGroup

//使用golang中sync.WaitGroup来实现协程同步package mainimport ( "fmt" "net/http" "io/ioutil" "time" "os" "sync")var waitGroup = new(sync.WaitGroup)func download(i int ){ url := fmt.Sprintf("http:

2016-10-23 19:28:57 6567

原创 go语言defer的用法

//defer用来推出前延迟操作,一个函数中可以有多个//defer的执行顺序和栈的行为是一样的package mainimport "fmt"func deferTest(x int) int{ if(x==0){ return 0 } defer fmt.Printf("x=%d\n", x) //说明一个函数中可以有多个defer,defer的执行顺序跟栈的行为一

2016-10-20 21:14:14 774

原创 go语言协程认识-1

//关于go语言协程通道的使用//1.通道可以带缓存,也可以不带//2.不带缓存的,不管是读还是写都会阻塞//3.带缓存的,如果缓存溢出,就会阻塞//4.make(chan int,1)和make(chan int)是不一样的,第一种通道内写入两个数据会阻塞,第二种写入就会阻塞//5.如果协程在阻塞,但是主程已经退出执行,则认为程序死锁//6.如果程序除了主程之外(没有一个协程),处于

2016-10-20 09:35:16 1214

原创 Go语言的学习教程地址,可以直接down到本地使用

https://tour.go-zh.org/welcome/1

2016-10-19 17:18:33 546

原创 go结构体中String接口的实现为什么是结构体而不是指针

package main//Go语言组合的思想很重,数据之间如果要传承//需要将数组组合进来//Go有指针的概念,但是并没有指针运算符import ( "fmt")const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2)//go语言的接口type Animal interface { name() (strin

2016-10-19 15:17:30 1637

原创 go结构体的学习和使用

package main//Go语言组合的思想很重,数据之间如果要传承//需要将数组组合进来//Go有指针的概念,但是并没有指针运算符import ( "fmt")const ( ANIMAL_CAT = 0 ANIMAL_MOUSE = 1 ANIMAL_DOG = 2)//go语言的接口type Animal interface { name() (strin

2016-10-19 15:16:38 4324

转载 go结构体的使用

go中的struct可以实现oop中的类、方法。go语言中的struct成员可以是任何类型,如普通类型、复合类型、函数、struct、interface等。入门 //定义 type User struct { name string email string password string } //声明

2016-10-19 14:34:53 4423

转载 golang中结构体的初始化方法(new方法)

type Rect struct {    x, y float64    width, height float64}初始化方法:rect1 := new(Rect)rect2 := &Rect{}rect3 := &Rect{0, 0, 100, 200}rect4 := &Rect{width:100,

2016-10-19 09:07:30 751

原创 python中的%(模)运算

模运算,用得算是比较多,但是负数的模运算还是用的比较少-1 % 8 =  71 % -8 = -7-1 % -8 = -11 % 8 = 1从上述的例子可以看出,如果模运算的算术符符号相同,则直接等于取绝对值以后,再做模运算(负数则是负),如果符号不相同其结果等于 a % b = c(a-c) %b == 0 满足这个规律

2016-10-17 21:30:52 7643

转载 AES-CBC-PKCS7Padding

#coding=utf-8import hashlibfrom Crypto.Cipher import AESimport base64class AesCrypter(object): def __init__(self, key): # self.key = hashlib.sha256(key).digest() # self.iv =

2016-10-17 21:18:12 4048

原创 nodejs的defer库Q(q)

在js中,各种回调,各种代码嵌套,导致代码风格很不好看,所以出现了流式风格的promise,promise和twisted的defer以及QT中并行库的future是一个概念,都是说明以后做什么,都是异步操作,不过QT的是多线程异步,而twisted和js都是单线程的,使用promise这样就不用把代码都写到各种回调中了,直接一个then就可以搞定了。例如一下代码风格。/* 在nodej

2016-10-13 17:15:37 4341

原创 async太好用了,用了两个小时写的代码

/* 从5442网站上把所有的热门推荐下载下来 async+cheerio+request */const util = require('util');const request = require('request');const http = require('http');const fs = require('fs');const cheerio = require('ch

2016-10-11 23:20:09 6317

原创 async中流程控制的applyEach,applyEachSeries,compose, during的用法

/*async的流程控制*/const async = require('async');const fs = require('fs');const util = require('util');//测试用例函数function showName(person, callback) { if ('name' in person) { //等待5秒以后开始执行操

2016-10-11 15:09:14 1483

原创 nodejs.async中流程控制auto,autoInject,cargo的用法

/*async的流程控制*/const async = require('async');const fs = require('fs');const util = require('util');//异步流程控制测试类function AsyncControlFlowTest() {}AsyncControlFlowTest.prototype = { //根据列出的

2016-10-11 09:18:40 2339

原创 nodejs使用asyn优化的爬取

/* 使用request + cheerio来爬取zngirls网站上的数据 */const request = require('request');const http = require('http');const fs = require('fs');const cheerio = require('cheerio');const url = require('url');

2016-10-09 20:56:13 1885

python编写的汽车之家爬虫

自动下载汽车之家资源,并使用json进行解析出完整数据列表。

2015-02-14

QT的WebKitDemo

1.用QT编写的访问天气的代码 2.用QT编写的HTML脚本

2014-10-15

nsis编译2012版本

nsis编译2012版本

2014-09-12

nsis-vs2010编译通过的安装包程序

nsis-vs2010编译通过的安装包程序,我折腾了很长时间才编译通过,喜欢的同学可以研究一下

2014-09-12

testplusplus

plusplus语法解析和qt-creator-opensource-src-3.1.0使用,很不错的东西,我研究了qtcreator的源码

2014-08-27

com初学demo

一个客户端例子,一个服务端的例子,算是入门的demo吧,大家可以看看

2014-08-13

openGL图形变换和裁剪

openGL图形变换和裁剪,矩阵的使用以及基本的用法。

2013-10-21

visual asssistant

Visual Assistant 支持VS2008和VS2010,是程序猿的必备工具

2013-06-05

android4.2.2src.zip

在网上找了老半天才找到~,费劲,需要的朋友请下载。

2013-05-13

android自动短信发送源码

用来学习短信模块的绝佳代码! public class ListAdapter extends BaseAdapter { private LayoutInflater mInflater; private List<Map<String, Object>> mData; public static Map<Integer, Boolean> isSelected; SMSINFODao smsinfodao; public ListAdapter(Context context) { mInflater = LayoutInflater.from(context); init(context); } //初始化 private void init(Context context) { mData=new ArrayList<Map<String, Object>>(); smsinfodao = new SMSINFODao(context); Cursor cursor = smsinfodao.select(); while (cursor.moveToNext()) { Map<String, Object> map = new HashMap<String, Object>(); map.put("img", android.R.drawable.ic_dialog_email); map.put("pn", cursor.getString(0)); map.put("title", cursor.getString(1)); map.put("body", cursor.getString(2)); mData.add(map); }

2013-04-26

Windows环境下实现原始UDP数据包发送

在Windows上实现原始UDP数据的通信,这是一个很实用的例子,喜欢的朋友可以好好看看

2011-10-16

矩阵的算法课件-对于学习OpenGL的朋友来说值得一看

对于学习OpenGL的朋友来说,复习线性代数应该是很有必要的,这里就有matrix的一套课件,值得参考一下

2010-03-23

独立的键盘钩子,用来hook键盘的一个小程序,很值得看看

这个程序是用来hook键盘的,而且是一个全局hook,但是程序并没有用全局的,所以是个不错的程序,这个程序是在console台下运行的,你也可以改写该代码

2009-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除