自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 状态模式例子

#include using namespace std;class context;class Istate{public:void virtual dosomething(context *pHandle) = 0;};class stateStart: public Istate{public:    void dosome

2014-06-03 16:32:06 1063

转载 Linux网络编程socket错误分析

都是网上整理的资料。贴在这里,以便查阅。Linux网络编程socket错误分析 socket错误码: EINTR: 4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interrupted system cal

2014-04-22 09:47:36 689

原创 web技术中,用jsp上传和下载文件(jspsmart)

文件上传和下载可利用现有的组件jspsmart,即要完成上传和下载功能,请先下载jspsmart.jar包。下载页首页upload.html文件上传 上传文件选择ENCTYPE="multipart/form-data">             1

2014-01-22 14:53:00 826

转载 spring框架中代理的实现-----用FactoryBean方式

一些代理和FactoryBean有关知识的补充,对理解有关这类的题目有帮助的1:每一个代理都有0个或多个方法,它有哪些方法要看它继承的是哪些接口,当应用程序来调用代理的某些方法时,代理把这些方法交给InvocationHandler的invoke()方法去处理,而返回调用实际方法结果的对象。(实际上这就是使用代理要达到的目的)***Invoke()方法***public Object

2014-01-09 14:50:41 831 1

原创 C++中模板函数的使用

#include struct node {int a;int b;char c;};template void myfun(T *pt , unsigned char *buf){    printf("sizeof(T):%d\n", sizeof(T));    *pt = *((T*)buf);};int main()

2013-12-26 09:52:45 785 1

原创 java对象和json的互转

java --> jsonjava bean:public class person{ String name = "china";     String Sex = "man";     int age = 19;     public String getName() {return name;}public void setName(String na

2013-11-29 09:49:51 548

原创 随手写了一个linux服务端与window客户端的epoll程序,当做练习把。

linux服务端:监听链接,处理消息#include    #include    #include    #include    #include    #include    #include    #include    #define MAX_EVENTS 500    int main(){int epfd = -1

2013-08-12 17:34:59 1426

原创 广播发送与接收

//发送端#include  #include  #include  #include   using namespace std;    int main()  {       WSADATA wsaData;    short version = MAKEWORD(2,0);    WSAStartup(version,&wsaData);

2013-07-29 16:14:03 603

转载 组播基础

什么是多播       单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。   多播,也称为“组播”,将局域网中同一业务类型主机进行了逻辑上的分组,进行数据收发的

2013-07-22 15:27:53 575

原创 用指针的指针分配若干块指针空间

#define PU_MD_MALLOC_RET( P, S, L, ret ) \{ \    P = NULL; \    P = (S*) malloc(L); \    if ( NULL == P ) return ret; \    memset( P, 0, L ); \}#ifndef DECLARE_HANDLE#define DECLAR

2013-05-25 13:17:45 424

转载 H.264 H.264RTP发送和接收

1.预备知识RTP包头的格式。0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequencenumber |

2013-05-20 09:59:49 462

转载 P2P之UDP穿透NAT的原理与实现

源码下载: http://www.ppcn.net/upload/2005_08/05080112299104.rar 参考: http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txtP2P之UDP穿透NAT的原理与实现(shootingstars)文章说明:关于UDP穿透NAT的中文资料在网络上是很少的,

2013-05-09 13:16:55 599

原创 两个内存进行拷贝时的操作

第一,比较两个内存块的大小,获得较小内存块的大小第二,用较小内存块的大小进行两个内存块的拷贝如:            int nLen = min( sizeof(abyUserName), strlen(szUserName) );            strncpy( tIdentify.abyUserName, szUserName, nLen );

2013-02-19 13:17:45 432

转载 Win32环境下的程序崩溃异常定位

1      案例描述作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭。请与您的供应商联系。呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了。在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。作为开发的我们更需要关心的是程序中

2013-02-02 16:21:30 1224

转载 jni的数据转换,写的很好,转了

最近做Android开发的人越来越多,Android开发难免会遇到调用本地库,这就需要采用JNI技术,JNI本身并不复杂,但大多数开发者在类型转换上遇到麻烦,今天特地将几种常用类型转换写成一个实例来告诉大家如何转换,尤其是Java的类和C的结构的转换,结构体中嵌套结构体如何处理,这部分网上的资料也比较少。1.        编写Java类package com.jinhill.util;

2013-01-17 11:17:55 756

转载 C++中虚函数的实现原理

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过

2013-01-03 22:24:09 2143

原创 C++中,虚函数与容器(vector)的巧妙组合

#include #include using namespace std;class base    //纯虚基类{public: virtual void init() = 0; virtual void start() = 0; virtual void end() = 0;};class other1{public:   void log

2012-12-26 14:37:28 1229

原创 C++中模板函数的巧用

//模板函数可以吧类型当作参数typedef struct{ char a[2]; int b;}PARAM;templatevoid Transfer(T *t, char *buffer)   //模板函数{ *t = *(reinterpret_cast(buffer));} void main(){     char *p; PARA

2012-12-22 10:40:31 445

转载 Makefile详解-------写的很全,很详细,例子很好

概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写mak

2012-11-18 22:45:44 1074 1

原创 宏定义中把表示宏的名称和宏的数值进行一一对应的方法

#include #define  STRNAME 100struct node{ char* name; int valu;};void main(){    struct node example;    example.name = new char[10];    //定义宏    #define  MYCROC(i)   \     e

2012-10-18 09:34:36 1128

原创 读文件信息

#include     //头文件  struct stat info;              //用于存储文件信息的结构体  stat(文件绝对路径, &info);  //获得文件信息

2012-10-15 13:38:15 411

转载 Windows消息大全

消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的: typ

2012-10-09 13:20:44 827

原创 c语言中往缓存写入结构体的方法

typedef struct Cmytype {  int a;  char b; };main(){   char buffer[100]; Cmytype data1,data2; data1.a = 100; data1.b = 'a'; data2.a = 119; data2.b = 'b';//写入缓存 ((Cmytype *

2012-10-06 20:45:29 1715

原创 可变长度参数的实现

void MyPrintf ( const char *lpszFormat, ... ){    #define DP_OUTPUT_SIZE  (WORD)2000 TCHAR szBuffer[DP_OUTPUT_SIZE] = {0};   va_list args; va_start(args, lpszFormat);   int nTimeStrLen

2012-09-29 12:23:07 576

转载 编译器-VC6.0全解及调试技巧

1、Run-Time LibraryRun-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分

2012-09-26 14:28:23 3504

原创 确定一个对象是否是某个类或其派生类的对象的方法

第一:在类中申明,如DECLARE_DYNCREATE(CWebconfigCtrl)第二:在类的实现中,如IMPLEMENT_DYNCREATE(CWebconfigCtrl, COleControl)第三:判断的函数中添加,pWnd->IsKindOf(RUNTIME_CLASS(CWebconfigCtrl)),如是,返回TRUE,否,返回FALSE

2012-09-24 14:54:05 1186

原创 用MFC自绘按钮,处理的消息包括WM_MOUSEHOVER、WM_MOUSELEAVE、WM_LBUTTONDOWN

//PicButton.hclass CPicButton : public CButton{ // Constructionpublic: CPicButton();     BOOL  bTrackLeave; BOOL  bBottonDown;    DWORD dwMouseStatus[2];  typedef enum tagStatus

2012-09-15 14:26:51 2980

原创 多线程和锁的运用

//注释掉的地方时另一种锁的应用#include #include int i = 0;HANDLE hMutex;DWORD WINAPI threadproc1(LPVOID lpParameter);DWORD WINAPI threadproc2(LPVOID lpParameter);CRITICAL_SECTION   Semo;int main(int

2012-09-07 14:29:43 339

转载 UDP编程

一: socket编程中的几种地址    Socket编程会遇到三种地址, 都是定义的结构体(struct):    Struct in_addr    {        Unsigned int s_addr;    }    这是一个IPv4地址,在IPv4的报文中,源地址和目的地址用32bit表示。通常定义在netinet/in.h中。    Stru

2012-08-17 17:53:24 440

原创 用时间的方法获得各不相同的数,用于数据库的主键

int nId; CTime time2(1979,1,1,1,1,1); time_t timep;    time (&timep); nId = timep - time2.GetTime();

2012-08-10 15:03:08 243

原创 浏览获得文件夹路径

char   szDir[MAX_PATH];    BROWSEINFO   bi;  memset(&bi, 0, sizeof(bi));   bi.hwndOwner  =   this->m_hWnd;     bi.pidlRoot   =   NULL;      bi.lpszTitle  =   _T("请选择下载目录");      bi.ulFla

2012-08-05 16:56:40 386

转载 MFC中有关CWinAPP类的成员变量和成员方法的应用

CWinApp 应用程序类共63个成员(由Cobject-CCmdTarget-CWinThread派生)#include CWinApp类是你派生Windows应用程序对象的基类。应用程序对象提供初始化你的应用程序(及其每个实例)的成员函数,并运行该应用程序。每个使用MFC类的应用程序只能包含一个CWinApp派生类对象。当Windows调用由MFC库提供的WinMain

2012-08-05 15:56:46 3247

原创 获得本地时间的一段小程序

CString strTime; unsigned int dwtime = time(NULL); struct tm* pCurTime; pCurTime = localtime((const time_t*)(&dwtime)); strTime.Format("%04d-%02d-%02d %02d:%02d:%02d", pCurTime->tm_year + 1900

2012-08-03 22:54:28 491

转载 几种语言的异常处理

一、     异常处理 (ExceptionalHandling)概述1.    异常处理异常处理又称异常错误处理,它提供了处理程序运行时出现任何意外或异常情况的方法。异常处理通常是防止未知错误的发生所采取的处理措施,对于某一类型的错误,异常处理应该提供相应的处理方法。例如,在设计程序时,如果可能会碰到除0错误或者数组访问越界错误,程序员应该在程序中设计相应的异常处理代码以便发生异常情况时

2012-08-02 23:16:38 569

转载 UML几种图的绘制

UML是Unified Modeling Language(统一建模语言)的简称。UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。UML是一套表示法系统。UML由一组图组成,它使得系统分析员可以利用这一标准来建立能够和客户、程序员以及任何参与程序开发的人员理解的多视角的系统蓝图。不同的风险承担人通常使用不同

2012-08-02 23:10:07 740

转载 CEvent类在线程同步中的作用

CEvent是用于线程间通信的一个封装类,他继承于CSyncObject,而CSyncObject又继承与类之父CobjectCEvent是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象使用 CEvent 类2007-07-10 19:44使用 CEvent 类   CEvent 类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。例

2012-07-31 20:01:22 1037

原创 随手写了一个简单的socket服务端和客户端

先开启服务端,在开启客户端。向服务端命令窗口输入字符,按ENTER键,则字符发送子客户端。之后客户端也可以发送字符至服务端。 服务端程序:#include #include main(){ SOCKET socknum, sendsocknum;                                                   //socket描述符

2012-07-31 09:22:32 678

原创 singleton-----------学习单件时,随手写了一个单件类程序

#include "iostream.h"class CSingleTon{public: static CSingleTon* instance(); int example;protected: CSingleTon() {        example = 100; };private: static CSingleTon* cobjiect;

2012-07-31 09:16:02 295

转载 STL中MAP的用法

一.Map概述Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,

2012-07-28 23:35:41 653

转载 using STL

STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有

2012-06-26 13:20:13 260

jspsmart.jar

在jsp中调用jar包的方法,可以很轻松的完成文件的上传和下载。

2014-01-22

空空如也

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

TA关注的人

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