自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

重度分类强迫症

分类、分类、分类

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于js面向对象特性的理解

一、对象和类型js中一切皆对象,对象即类型(函数对象可模拟class),类型即对象(class是函数对象模拟的),对象可分为两类:实例对象、原型对象:1. 实例对象即某一类型(class)的具体实例(instance),函数对象也属于实例对象;2. 原型对象即描述类型信息的对象(prototype),函数也是一种类型(function型),类比Array、String等

2017-06-05 15:13:15 745

原创 说说字符编码的那些事儿

ASCII编码,就是英文显示文字所需要的256个字符(比如,英文字母、数字、标点符号等等),每个字符用一个字节表示,即单字节编码(SBCS,char),ASCII码表定义了数值和字符的映射关系。    ANSI在保留ASCII编码的基础上,对其进行了扩展,使用2个(或多个)字节来代表一个字符,即多字节编码(MBCS,char),它是一种泛称,要结合具体的CodePage(也称编码字符集、代

2015-04-03 18:00:12 1520

原创 模块划分的原则及方法

首先解释一下模块的概念,对客户端应用程序开发来说,dll(pe文件)是模块的表现形式;对web项目来说,包是模块的表示形式。一、基本原则:1. 模块功能要单一;2. 新增功能时,尽量减少对已有模块的改动,在新增模块中实现功能;3. 功能调整或修改bug时,影响的模块数量要尽可能少;4. 功能调整或修改bug时,受影响的模块要尽可能的小(指客户端应用程序开发,比如dll文

2013-11-01 17:52:08 31503

原创 谈谈文件增量同步算法:RSYNC和CDC

最近在研究文件的增量同步问题,着重研究了文件差异编码部分,因为这个其实是文件同步的核心。目前应用最广泛的当然是linux下的RSYNC算法,但是这个算法本身存在缺陷,就是当两个文件完全无关时,差异编码的效率非常低,几乎难以接受!带着这个问题,我研究了CDC(Content-Defined Chunking)算法,发现CDC算法恰好解决了这个问题:当两个文件的差异非常大时,CDC的效率非常高。我

2013-03-28 15:18:43 7081 3

原创 SVN的Merge命令解析

合并包含两点,首先2个版本库树比较,然后将区别应用到本地拷贝。         这个命令包括3个参数:初始的版本树(通常叫做比较的左边,FROM)最终的版本树(通常叫做比较的右边,TO)一个接收区别的工作拷贝(通常叫做合并的目标,WORK COPY)        迷惑的主要原因是这个命令的名称,术语“合并”不知什么原因被用来表明分支的组合,或者是其他什么神奇的数据

2013-02-28 10:34:19 13958 1

原创 TCP报文到达确认(ACK)机制

TCP所传输的数据的编号不是以报文段来进行编号的,而是将整个传输数据分成单个的字节流,并将每个字节流进行编号。一个TCP数据包中包括多个字节流的数据,而且每个TCP数据报中的数据大小并不一样。在建立TCP连接的三次握手过程中,通信双方各自已确定了初始的序号x和y,TCP每次传送的

2011-07-14 15:29:53 43539 9

原创 深入剖析TCP协议的send与recv

一、 滑动窗口的概念        TCP数据包的TCP头部有一个window字段,它主要是用来告诉对方自己能接收多大的数据(注意只有TCP包中的数据部分占用这个空间),这个字段在通信双方建立连接时协商确定,并且在通信过程中不断更新,故取名为滑动窗口。有了这个字段,数据发送方就知

2011-07-13 16:48:34 14303 2

原创 关闭TCP连接的学问

从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。        首先说一下正常关闭时四次挥手的状态变迁,关闭连接的主动方状态变迁是FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT,而关闭连接的被动方的状态变迁是CLOSE_WAIT->LAST_ACK->TIME_WAI

2011-07-11 23:41:34 8586

原创 UDP报文传输的差错控制

了解TCP/IP协议的人都知道TCP协议是可靠传输的,而UDP协议是不可靠传输。“可靠传输”大家基本上可以达成共识,就是协议确保数据正确到达目标机器;但是“不可靠传输”可能就存在争议了,到底是不保证数据到达?还是不保证数据正确?又或者是两者都不保证?

2011-04-29 14:54:00 10961

原创 windows平台DLL的加载机制

    最近一直在配合测试做性能测试,前一段时间谈到了LoadRunner和动态加载(或延时加载)的问题,真的是被windows的延时加载机制搞得有点头大,还好真相总是在我面前无处藏身。下面我抽象了四个问题,依次回答完 这四个问题,相信你对windows的延时加载机制会有一个深入的了解。    我们现在假设有一个宿主程序A.EXE,它依赖B.DLL,C.DLL和D.DLL,其中C.DLL依赖于B.

2009-05-22 14:52:00 2687

原创 编译器和链接器的工作原理和流程

      最近一直在思考微软C++编译器和连接器的工作原理,上网搜寻了很多,没有一篇文章是系统介绍的,无赖之下只得把个人的观点写了下来,纯属个人观点。当中有很多值得商榷或者根本就是错误的地方,但一时又不知道如何修改也不想修改了,因为这个问题我想了几天,似乎越想越糊涂,所以干脆做个了结,非常欢迎大家批评指修改补充,大家一起讨论,共同进步。      首先定义一个结构体:typedef struct

2008-07-02 11:34:00 5461 2

原创 socket 10106问题解决日记

很久没写博客了,这两天解决了一个创建套接字(SOCKET)失败,错误码为10106的问题。部分从事网络编程的朋友也遇到过类似问题,大多数都可以通过重装系统解决。这次我想研究一下10106产生的根本原因,给大家解决类似问题,提供另外一种思路。【环境】WIN7,64位系统【现象】CAD2006平台程序不能联网,其他程序没有问题【错误原因】创建SOCKET

2013-08-29 11:41:38 12746

转载 OllyDbg 设置断点的操作方法

Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限,可能不能完整的写出来,也可能存在错误。请

2011-11-22 13:27:38 13850

原创 VS2005调试dmp文件常见问题

1、 Dump文件放在哪里?Dump文件不用非要放在你编译出来的位置,你完全可以建立一个新的文件夹来放它。但若不是存放在编译出来的位置,需要将编译生成的PDB文件拷贝到Dump文件目录,或是利用VS2005打开Dump文件后,设置PDB文件路径。2、 如何恢复当时的现场?可能你要问,怎么可能,这个dump文件可是用户发给我的,我不可能去用户家里调试吧?这个恢复现场可

2011-11-16 10:41:04 6110

原创 10060与360网络优化

公司的互联网产品在部分WIN7用户的机器上经常会出现连接超时的问题,具体是在connect时出现10060错误,即网络连接超时。这个错误产生的原因有很多,比如物理链路不畅、服务器故障、本地网络障碍等等。考虑到同一时间、同一局域网的用户中,使用XP的用户可以正常连接,而WIN7用户则产生10060错误,所以我们基本可以将问题锁定于用户自身机器的问题,并且极有可能是软件问题,即系统的某些设置、或者初始

2011-11-01 18:41:57 3671

转载 windows网络命令汇总

Ping命令:ping命令通过发送ICMP回声请求报文来检查与另一个计算机的连接。这是一个用于排除连接故障的测试命令,如果不带参数则显示帮助信息。ping命令的语法如下:C:/>ping /?用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count

2011-10-26 09:43:09 23441

原创 BoundChecker使用报错的解决方法

BoundChecker大家应该都很熟悉了,以前用VC6开发时用起来很正常,到了VS2005就有些麻烦了,导入了破解好的license(就是那个xml文件)后,启动BC进行程序调试,依然会出现以下错误:(STEP-1)(STEP-2)        这两个错误是在启动BC进行调试时,顺序弹出来的两个错误窗口,看起来好像程序的错误,事实是也确实如此,将本地

2011-10-20 15:48:51 1822

原创 CS应用程序开发中的异常处理

我们在进行网络应用程序开发时(主要是CS架构的应用程序)要面对很多异常情况的处理,这些异常中有些是服务器端主动抛出的异常,客户端要按照事先约定好的规则分类处理;有些是客户端进行参数合法性检查产生的异常,需要提示给用户知道;还有诸如网络连接异常、数据传输异常等等。要让我们的网络程序

2011-10-11 14:18:17 1464

原创 WINDOWS下的窗口及风格

以下内容是我在近一段时间工作中对windows系统中窗口概念的理解和认识,主要是对容易引起混淆的WS_CHILD、WS_POPUP、WS_OVERLAPPED等风格的理解,有不当之处,大家直说无妨!=======================================

2011-10-09 15:45:28 1694

转载 访问进程私有地址空间--ReadProcessMemory

ReadProcessMemory函数用于读取其他进程的数据。我们知道自远古时代结束后,user模式下的进程都有自己的地址空间,进程与进程间互不干扰,这叫私有财产神圣不可侵犯。但windows里还真就提供了那么一个机制,让你可以合法的获取别人的私有财产,这就是ReadProces

2011-07-26 09:36:22 4489

原创 JXTA项目命名规范

     前一段时间在做一个P2P的技术研究和产品开发,研究了一些开源的项目,包括e-mule、jxta等。趁现在的发版间隙,总结一下jxta的编码规范,今天首先总结一下jxta的命名规范,也算是对之前工作的一个总结,希望对入行的小弟们有些帮助。 一、 【函数名】1. 单词字母统一小写2. 下划线分割单词如:staticchar *wire_get_name(J

2011-06-20 11:20:00 1104

原创 WIN7的账户权限及UAC控制总结

WIN7的账户权限及UAC控制总结一、账户权限及权限控制概述       每个账户都属于一个组,组就相当于角色的概念。WIN7安装好以后会自带一个名为Administrators的组(角色),任何属于这个组的成员(用户)都拥有系统的最高权限(管理员权限),而不论用户的名称如何。普

2010-12-31 11:54:00 1823

原创 Python的学习纲要

最近负责的新产品刚刚发布,难得有时间系统的看了一下Python这门语言,一直对它比较感兴趣,今天花了近一天时间大概看了一下,总结一下Python语言的一些要点和特性,希望对初学着有所帮助,共勉!

2010-09-16 17:41:00 1395

原创 LoadRunner无法捕获网络事件

 前一段时间在做一个C/S架构的客户端程序,所以服务器的性能负载测试必不可少,我们用的测试工具是LR。奇怪的事情发生了,LR加载我们的客户端以后,始终抓不到网络事件,这个问题让我一下摸不着头脑!我记得之前做登录部分的时候,用LR加载是可以抓到网络事件的,难道我的功能增加了以后,代码增加以后,LR便扛不住了?当然,这是一句玩笑话。后来经过一番仔细排查(耗时约一周...),发现居然是因为网络模块静态加

2009-05-15 17:49:00 5444 1

原创 关于创建socket失败的问题

昨天在调试程序的时候发现每次调用socket函数总是失败,可令人奇怪的是这个模块之前运行一直是OK!拿到的错误码是10106,宏是WSAEPROVIDERNOTINIT,意思大概是“请求的服务没有被加载或者初始化”,网上搜索的结果都说是WSAStartup没有调用,明显这种说法是不正确的,因为WSAStartup没有调用或调用失败的话,返回的错误码应该是WSANOTINITIALISED,而且我确

2009-01-09 10:15:00 20450

穿越防火墙建立TCP连接的源码

本人珍藏的一套穿越局域网网关防火墙,建立TCP连接的代码;这套代码本来是linux平台下的,已经被我移植到windows平台,代码在vs2005下编译通过,同时程序调试通过。通过这套代码,你可以了解防火墙的穿越原理、加深对HTTP协议标准的理解。

2011-02-17

空空如也

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

TA关注的人

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