自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 jpeg组包

#ifndef _JPEGPARSER_H_#define _JPEGPARSER_H_#include "RTSPStruct.h"//static FILE *nfile = NULL;#define VIEOD_FRAME_JPEG_LEN 1024*1024

2011-09-22 17:27:47 1190

原创 quicksort

void quick_sort(int InArray[], int top, int end, int indexkey){ int itop = top; int iend = end; int iindexkey = indexkey; int temp = 0

2011-08-23 11:49:19 433

原创 OpenRtsp源码剖析之hashtable解析

OpenRtsp源码剖析:hashtable       这是主要保存数据value和key的结构体:          class TableEntry { public: TableEntry* fNext;

2011-08-17 18:23:13 1544

原创 算法练习

1. C语言题,输入一个正整数,要求判断这个数是否是对称数(比如121,123321,1456541)。要求不能调用字符串库函数。  #include #include bool isSymmetryN(unsigned int symnum) //注意,当

2011-08-15 22:18:18 1014 4

原创 1+2+3...+n

要求:题目:求1+2+…+n,不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。   一下就是转载别人的解法:   1.#include using namespace std;templat

2011-08-12 17:05:21 1218

原创 广播,多播

广播,顾名思义是把数据广播出去,又分为网内广播,网外广播。       如果在局域网内进行广播,把广播地址,也就是网络物理层的目的地址全部填写成1就行了,这样的话,当路由器,收到数据包的时候,ip协议会根据目的地址确定这是一个广播数据包,就不会转发到其它网络上,而是直接发送到

2011-08-11 18:29:27 453

原创 网络地址,tcp/udp的区别

今天复习了一下比较基础的网络知识,本来以前对网络这块就比较迷离。       网络地址,众所周知就是用来标识计算机所在位置,并不是标识那一台计算机的名字,而是表明这台计算机和网络之间的关系,所以当这台计算机换了个地方以后,也要相应的改ip地址。        网络地址占3

2011-08-10 18:45:12 709

原创 volatile的使用

volatile的意思是易变的,用来修饰变量和const是相反的。注意:它们不能同时修饰一个变量。       作用:      使用volatile修饰的变量,编译器不会进行优化,因为有时为了追求速度和性能,编译器会临时存储变量到寄器,因为cpu从寄存器取变量的值比直接

2011-08-09 18:45:46 631 2

原创 linux链接

看了深入理解计算机系统《链接》这一张,写出来,虽然其中有很多还不是很懂,但根据自己的理解写出了一点心得,如果各位大虾不幸看到,希望指点一二。          linux的目标文件格式(ELF),就是要生成的目标文件,大体过程如下:          以c编译器为例,例如

2011-08-02 18:41:14 350

原创 windows 完成端口

在windows网络编程中,有一种完成端口iocp机制,用于处理客户端的连接,避免每当客户端进行连接就创建一个线程,这样会导致服务器成千上万个线程,而完成端口很好的解决了这个问题。        自己的理解是:完成端口就是一个IO完成队列,在把服务socket与这个完成端口绑定,

2011-07-12 18:15:21 735

原创 进程与线程

<br />   进程由内存和资源构成,进程本身不能够执行,只是存放内存和资源的地方。<br />   资源:包括句柄,线程,核心对象,USER资源,GDI资源。<br /> <br />     线程主要分为三部分:code(read only):执行部分。Data:包括全局变量和静态变量。Stack:存放堆栈和局部变量。 <br />     线程之间的切换(context_switch):当线程执行太久———>发生中断———>把线程所有寄存器的内容拷贝到堆栈中———>再拷贝到congtext。<br

2011-05-10 18:17:00 387

原创 学习c/c++技术小结

<br />      伪指令#pragma pack(n)   这个指令用于告诉编译器,程序里面的结构体按到n个字节对齐。<br />      #pragma pack()取消自定义的字节对齐。<br />       struct stA =>将按到结构体变量中,占最大字节来算,int占4个字节,所{ 以sizeof(stA) = 8; int a; 注意:如果#pragma pack(n),n超过了结构体中,最大的 char b;

2011-02-24 18:25:00 389

原创 学习com后技术小结

  com的定义是:组件对象模型,主要作用用于分布式环境,可以跨语言,跨平台。  要介绍com,就先必须了解接口,为什么可以被其它语言调用,例如java,vb,就是通过接口定义语言idl来实现的,通过midl,将接   口定义翻译成其它语言,然后其它语言就能调用com了。每个组件都有名字,当多个组件启动,为了避免不同组件之间的名字冲突,就用IID来定义组件的接口名,CLSID来定义类名。在接口定义文件idl中,import "unknown.idl",可以引进其它接口文件,被MIDL翻译后,如果是c/c++

2011-02-21 18:53:00 507

原创 nginx在cygwin情况下hello,world

<br /> <br />      最近看了一些nginx运行hello,world的资料,然后自己总结了一下。<br />这里只介绍使用cygwin的情况。<br />      在windows平台上装好cygwin以后,运行cygwin,如果想进windows下的C,D,E,F目录,则必须cd /cygdrive,进入以后用ls命令就可以看见C,D,E,F盘了,然后下好nginx源码。<br />      准备工作做好以后,就可以开始自己的hello,world模块了,首先建一个目录,用来存放自己

2011-02-17 17:41:00 2772

原创 windows 线程同步机制

<br /><br />线程同步用来对资源的一种控制使用,避免产生死锁。<br />一. critical section<br />    只能在进程之内使用, 不属于内核变量,当对资源进行critical section以后,只有获得所有权的线程,才能对资源的访问,访问过后,

2011-02-17 09:23:00 543

原创 nginx之array分析

<br /><br />nginx 数组结构体:<br />struct ngx_array_s {<br />    void        *elts;     内容<br />    ngx_uint_t   nelts;    已经使用了多少个字符串<br />    size_t       size;     每个字符串所占的大小 <br />    ngx_uint_t   nalloc;   预分配的多少个字符串,如果和nelts相等,则满了,然后根据情况确定是否需要重新分配内存<br />

2011-02-12 16:54:00 670

原创 路由器小结

<br />     两台计算机是如何通信的了?以前一直都没怎么明白,现在总算有了一点头绪了,虽然内部原理有些地方还是还没有搞清楚,比如采用的路由算法什么的。以下就是分析:<br />     当把数据打好成ip包以后,通过ip协议发送到路由器,路由器查看目的ip地址,如果是本地网络,就直接把ip包发送到本地网络接口,然后再发送到目的地址,如果目的地址不属于本地网络,则发送到其它路由器接口,这里路由器干些什么?路由器维护一个路由表。<br />  路由表:<br />   目的地址             

2010-12-10 13:28:00 469 1

原创 com技术小结

<br />    com:组件对象模型,客户端通过com api获得com对象,来调用com的方法。<br />    com对象:通过com api函数CoCreateInstance()产生com对象,这个函数需要指定两个128位的id,一个是dll/exe文件的id,一个是com的类id,在生成com的时候,系统注册表会记录这两个id,并把他们各自对应的dll/exe文件,类名记录下来,当调用这个api函数的时候,会在注册表中找到对应的dll/exe,类名,进行加载。如果不在同一台机子上,在客户端和

2010-12-09 15:02:00 334

原创 c++对象模型之虚继承

    class A{   int a;};class B:virtual public A{  int b;};B b; ->    内存[   int a  ]                       [   int b  ]                       [  void *pt]     指向 int a如果没有virtual,内存如下:[ int a ][ int b ]class C:virtual public A{   int c;};class D:public B,pu

2010-12-02 18:36:00 326

原创 linux Makefile

<br />   Makefile 用于在linux平台下,编译文件的工具。<br />   当用户执行make命令,会自动在当前目录下找到Makefile文件,并执行。<br />   用于将所有的目标文件obj,打包成lib文件,或者linux下的*.a 文件。<br />   target:one.o two.o<br />   如果任何one.o,two.o文件比target文件新的话,下面的命令会自动执行。<br />   只允许单行注释以#开头<br />   未完待续 

2010-12-02 14:17:00 342

原创 堆排序

       我想说的不是内存中的堆空间,这里的堆只是一种组织方式,采用的是用完全二叉树的形式来表示一维数组,就是说如果是一个大顶堆的话,根部的数是最大的,从根部开始,一层一层对应数组,例如数组int a[6]={6,5,4,3,2,1},a[0]是根部,a[1] 是左子节点,a[2]是右子节点,。。。。。。       如果要对一个一维数组进行堆排序的话,首先要把这个一维数组初始化为一个大顶

2010-05-04 21:35:00 396

原创 C,C++中读取文件

c++读取文件:CreateFile();创建/打开文件文件,返回一个HANDLE指向打开的对象,头文件:Windows.hReadFile();根据传入的HANDLE,开始读文件,一次读入一个buf,需要指定读入的字节个数,其中包括换行符,回车符,如果成功返回一个非零的bool值include Windows.h.WriteFile();写一个buf,指定写入的字节数,如需换行,需要写入回车符,

2010-03-27 16:00:00 3104

转载 二维数组名作为实参或者形参

可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以可以指 定所有维数的大小,也可以省略第一维的大小说明,如:    void Func(int array[3][10]);    void Func(int array[][10]);    二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的:    void Func(int array[

2009-12-13 20:26:00 903

原创 sizeof 和strlen

 sizeof是计算所占的内存空间,也就是多少字节,是语言内置的运算符,在编译时就能确定,速度快,性能比strlen好。  strlen(const char *p),计算的是个数,并且字符串的尾部必须以‘/0结束,但是个数却不包括’/0‘,是函数库,必须要调用函数,性能不是很好,速度不快,而且是在运行才能确定。

2009-10-31 22:53:00 566 3

原创 getline的用法

getline在c++中的头文件#include           作用:输入流中获得一行文本          用法:1:getline(输入流,string)获得一行字符串并保存到string中,当用户按enter键即遇到默认结束符’/n结束。                   2:cin.getline(指向保存对象的指针,个数,结束符),当遇到结束符的时候停止读取,读的个

2009-08-29 15:30:00 941

原创 getchar()和EOF总结

 http://blog.chinaunix.net/u2/77929/showart_1949842.html字符串输入:gets()    char name[20];    printf("Hi,Whats your name?/n");    gets(name);    printf("Nice name %s",name);它使用一个地址把字符串赋予name。    char n

2009-08-10 22:34:00 599

关于vc++的调色板的实现

在vc环境下调试通过的颜色面板的实现,代码在400行左右,非常的强大,使用过后就知道。

2010-04-20

c++实现的贪吃蛇,很清楚

这个是用c++实现的贪吃蛇程序,完全是用c++实现。非常清楚。

2010-03-27

qq界面.net编写的程序

qq界面,自己添加实现代码,希望下了的人多评点

2008-12-21

vc++写的千千静听

这个是用c++写的源程序,非常好,有点复杂,我看了很久都还没有明白的。

2008-12-06

空空如也

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

TA关注的人

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