自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心之所向,身之所往

专注于多媒体技术(H264、HEVC、流媒体、ffmpeg、DirectShow、DXVA、MediaFundation)

  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

转载 网络编程基础

1、I/O模型阻塞式I/O:是最简单、最经常使用的模型也是Linux默认使用的模型。在此模型下针对所有套接字的操作都是阻塞的,套接字阻塞时主动放弃CPU。该方式的主要缺点是效率不高,进程有可能永远阻塞。非阻塞I/O:在一个非阻塞式套接字上进行输入输出操作时,如果操作不能完成,函数立即以错误返回,而不是一直等待。非阻塞式套接字的缺点是编程比较复杂,操作将占用大量CPU处理时间

2013-05-29 00:09:45 812

转载 socket编程原理

socket编程原理1、问题的引入  1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操

2013-05-28 23:52:00 1195

转载 Linux下的五种I/O 模式

五种I/O 模式(转)五种I/O 模式:【1】        阻塞 I/O           (Linux下的I/O操作默认是阻塞I/O,即open和socket创建的I/O都是阻塞I/O)【2】        非阻塞 I/O        (可以通过fcntl或者open时使用O_NONBLOCK参数,将fd设置为非阻塞的I/O)【3】        I/O 多路复

2013-05-28 23:48:47 786

原创 网络编程——阻塞模式

// 阻塞模式下的网络编程//   运行平台  VS2005 , win32 Project// 使用的API: socket, bind, listen, accept, connect, closesocket, WSAStartup, WSACleanup,//////////////////////////////////////////////////

2013-05-28 23:45:34 936

原创 网络编程-select模型

Socket通信(TCP)非阻塞模式-select模型 这个范例是个基于TCP协议的非阻塞模式下的SOCKET通信。应该非常具有代表性了,分为服务器端和客户端。非阻塞类型:Select模型 ////////////////////////////////////////////////   TCP Server  select非阻塞模式//   IP: 127.

2013-05-28 23:44:10 826

原创 网络编程——非阻塞模式(ioctlsocket)

#include   #include              //winsock.h (2种套接字版本)  #pragma comment(lib,"ws2_32.lib") //wsock32.lib   #define MAXSIZE 100 //   int main()  {      //      int retVal;       char buf[MAXSIZE];

2013-05-28 23:28:32 4738 1

原创 Windbg Attach使用

1、利用windbg查看程序加载的dllFile->Attach to a process->选中,即可。2、如何让一个进程启动时Windbg自动Attach上去(1)在注册表中创建一项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\QQ

2013-05-27 23:17:14 3334

转载 IAT_HOOK

使用IAT  HOOK 截获MessageBox函数步骤如下1..写一个自己的MessageBox 函数 注意调用约定为 __stdcall、、2..定义一MessageBox函数指针如下typedef int (__stdcall *pOldMBox)(HWNDhWnd, LPCTSTR lpText, LPCTSTR lpCaption,UINT uType);3..遍历本

2013-05-25 23:54:07 651

转载 typedef 函数指针

1、typedef的理解     typedef   int*  p :在一个声明中,如果有存储类说明符typedef的修饰,标示符p将被定义为了一个typedef name,这个typedef name表示一个类型,这个类型就是int*  p这个声明中表示的p的类型。2、typedef定义函数指针    typedef  int(*PFunc)(int);    例子:

2013-05-25 23:25:04 710

转载 Hook技术学习资源

我的学习笔记之五——inline_HOOK完美篇我的学习笔记之二——修改导入表HOOK API我的学习笔记之三——inline使用DLL进行全局HOOK

2013-05-25 21:56:33 777

原创 HOOK API技术介绍

在Windows 操作系统里面,API是指由操作系统提供功能的、由应用程序调用的函数。这些函数在Windows操作系统里面有上千个之多,分布于不同的DLL文件里面或者EXE文件里面。应用程序通过调用这些函数来获得一些功能的支持。API HOOK技术是一种用于改变API执行结果的技术,例如翻译软件可以通过Hook TextOut函数或其他相关的API函数,在执行系统真正的API之前,截获TextOu

2013-05-17 23:46:29 1304

原创 自动重置事件对象与人工重置事件对象

1、自动重置事件对象。#include #include using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);DWORD WINAPI Fun3Proc(LPVOID lpParameter);HANDL

2013-05-17 23:13:01 1647

转载 多线程——让多核CPU单核运行

开始-运行,输入“msconfig”,回车。boot.ini-高级选项,把“numproc”前面的勾打上,然后把后面的数字调整为"1",确定,确定,重启计算机,生效。

2013-05-17 21:58:00 1630

原创 windows驱动开发——DDK WDM

1、WDM主要针对硬件设备      DDK对虚拟设备和硬件设备2、WDM安装需要inf文件安装。

2013-05-16 23:53:31 1091

原创 windows驱动开发——一个最简单DDK驱动。

1、mini_ddk.c#include VOID DriverUnload(PDRIVER_OBJECT dirver){DbgPrint("First:our Driver is unloading.....\n");}NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)

2013-05-16 23:21:52 2064

原创 windows驱动开发——基础知识

1、应用程序工作在R3层,驱动工作在R0层。2、32位系统,R3层2G,R0层2G。3、驱动区分大小写。4、返回码:NTSTATUS5、KdPrintKdPrint使用方法类似printf,注意KdPrint((" ",  ));使用的是双括号。用KdPrint(())来代替printf 输出信息。这些信息可以在DbgView 中看到。KdPrint(())自身是一个宏,

2013-05-15 23:02:34 898

转载 一般函数指针和类的成员函数指针

一般函数指针和类的成员函数指针转载请注明原文网址:  http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数

2013-05-13 00:06:35 558

原创 C++在类中创建线程

1、使用_beginthread#include  //sleep#include #include //_beginthreadusing namespace std;class A{public:A(){_beginthread(Agent, 0, (void*)this);}void run(){int i = 0;whil

2013-05-13 00:03:04 1236

原创 windows驱动开发——环境搭建

1、安装工具WinDBG            http://www.microsoft.com/whdc/devtools/debugging/installx86.MspxdbgView            http://technet.microsoft.com/en-us/sysinternals/bb896647.aspxWDK下载 (两个都可以)(6001.18002

2013-05-12 11:54:02 905

原创 设计模式——单例模式

#include      /* printf */class Singletest{public:    static Singletest* getinstace();    ~Singletest();private:    Singletest(); static Singletest* instance; };Singletest* Si

2013-05-12 00:04:19 525

原创 C语言——可变长参数

1、头文件 stdarg.h2、例子:求最大数/* bsearch example */#include      /* printf */#include int maxn(size_t count,...){int n,big;va_list numbers;va_start(numbers,count);big = va_arg(numbers,

2013-05-10 22:43:10 601

原创 strcpy和memcpy的区别

strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需

2013-05-10 20:47:27 437

原创 C++基本类型所占位数和取值范围

C++基本类型所占位数和取值范围:符号属性      长度属性      基本型      所占位数      取值范围    输入符举例       输出符举例--                    --                char         8            -2^7 ~ 2^7-1        %c             %c、%d、%u

2013-05-09 23:15:37 553

原创 C语言函数库——stdlib.h

1、abs功能:求绝对值2、atof功 能: 把字符串转换成浮点数例子:#include #include int main(){    float f;    char *str = "12345.67";    f = atof(str);    printf("string = %s float = %f\n", str, f);

2013-05-07 23:25:17 1751

原创 C语言库函数——ctype.h

1、isalnum 功能:判断字符变量c是否为字母或数字说明:当c为数字0-9或字母a-z及A-Z时,返回非零值,否则返回零。Example:#include #include int main (){  int i;  char str[]="c3po...";  i=0;  while (isalnum(str[i]))  { i

2013-05-05 23:06:14 1236

原创 C语言库函数——之一

1、库函数:顾名思义是把函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供编程人使用。2、一般是指编译器提供的可在c源程序中调用的函数。3、C语言编译系统应提供的函数库目前尚无国际标准。不同版本的C语言具有不同的库函数,用户使用时应查阅有关版本的C的库函数参考手册。4、标准C库由15个头文件中声明的函数,类型定义和宏组成。 第一组ctype.h       字符处理

2013-05-05 22:57:03 526

转载 程序员如何保持优秀

1. 小范围的选择一些有用技术,透彻的学习它们,拥抱它们。然后不断的扩展这个范围。2. 理解各种数据结构的优点和缺点,包括它们在内存中和在硬盘上的各自表现。3. 理解各种算法的优点和缺点。4. 发挥你的想象力。永远都要问,“有更好的方法吗?”跳出常规思维约束。最好的解决方案也许还没有被发现5.写一个框架,不论你是否打算用它。你将从中学到从其它途径中学不到的东西。

2013-05-05 22:14:00 612

转载 C++中获得当前系统时间

// 方案— 优点:仅使用C标准库;缺点:只能精确到秒级#include  #include int main( void ) {     time_t t = time( 0 );     char tmp[64];     strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) )

2013-05-05 22:08:26 523

转载 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.

呵呵,今天来好好看看着几个转换操作符的用法。以前老是看着眼熟,但是用着手生。今天决定搞定这些个东西。在C语言中类型转换有几种方式:1.      (expression). 在表达式外边加括号,由编译器来决定怎么改变。2.      new_type(expression). 强制类型括号住表达式。3.      (new_type)expression. 括号住强制类型。4.

2013-05-05 22:07:32 482

原创 预定义的符号常量? _LINE_ _FILE_ _DATE_ _TIME_

printf("%d %s %s %s" , __LINE__, __FILE__, __DATE__, __TIME__ );注意是两个下划线

2013-05-05 22:05:59 1046

原创 C++库函数查询网址

http://www.cplusplus.com/

2013-05-03 22:09:06 1866

原创 stdafx.h

1、所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。2、所有的MFC实现文件第一条语句都是:#include "stdafx.h"。在它前面的所有代码将被忽略,所以其他的头文件应该在这一行后面被包含。你编写的任何.c

2013-05-02 23:51:28 593

转载 dll的导出和导入的一个小技巧

dll的导出和导入的一个小技巧(让dll的代码文件和调用者代码文件共享一个头文件)大家都知道导出成员用_declspec(dllexport),导入用_declspec(dllimport),可以在头文件的声明部分使用这两个修饰符对函数,类,变量,或类成员函数进行修饰,来表示该成员是一个导入成员或导出成员。有一个小技巧,就是使用宏定义作为开关控制,让dll项目和调用dll的项目公用

2013-05-02 23:46:26 811

H264码流NALU分析

H264码流,NALU结构分析,可以进行二进制分析

2014-07-20

计算机专业各大公司面试题

计算机专业各大公司笔试、面试题,包括百度、腾讯、华为、中心、微软、迅雷、搜狐、网易、盛大等。

2011-04-19

腾讯面试算法,体验设计高效算法重要性

腾讯面试算法,体验设计高效算法重要性,当数据量很大时,效果更为明显,有图!

2011-04-19

纯正美语发音100个秘籍

纯正美语发音100个秘籍,介绍美语发音特点,如何发说纯正口语。呵呵!

2010-06-22

空空如也

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

TA关注的人

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