- 博客(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 1097
转载 Linux网络编程socket错误分析
都是网上整理的资料。贴在这里,以便查阅。Linux网络编程socket错误分析 socket错误码: EINTR: 4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interrupted system cal
2014-04-22 09:47:36 725
原创 web技术中,用jsp上传和下载文件(jspsmart)
文件上传和下载可利用现有的组件jspsmart,即要完成上传和下载功能,请先下载jspsmart.jar包。下载页首页upload.html文件上传 上传文件选择ENCTYPE="multipart/form-data"> 1
2014-01-22 14:53:00 861
转载 spring框架中代理的实现-----用FactoryBean方式
一些代理和FactoryBean有关知识的补充,对理解有关这类的题目有帮助的1:每一个代理都有0个或多个方法,它有哪些方法要看它继承的是哪些接口,当应用程序来调用代理的某些方法时,代理把这些方法交给InvocationHandler的invoke()方法去处理,而返回调用实际方法结果的对象。(实际上这就是使用代理要达到的目的)***Invoke()方法***public Object
2014-01-09 14:50:41 865 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 825 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 568
原创 随手写了一个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 1458
原创 广播发送与接收
//发送端#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 640
转载 组播基础
什么是多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 多播,也称为“组播”,将局域网中同一业务类型主机进行了逻辑上的分组,进行数据收发的
2013-07-22 15:27:53 609
原创 用指针的指针分配若干块指针空间
#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 447
转载 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 486
转载 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 624
原创 两个内存进行拷贝时的操作
第一,比较两个内存块的大小,获得较小内存块的大小第二,用较小内存块的大小进行两个内存块的拷贝如: int nLen = min( sizeof(abyUserName), strlen(szUserName) ); strncpy( tIdentify.abyUserName, szUserName, nLen );
2013-02-19 13:17:45 457
转载 Win32环境下的程序崩溃异常定位
1 案例描述作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭。请与您的供应商联系。呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了。在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩溃并不可怕,反而是测试的成功。作为开发的我们更需要关心的是程序中
2013-02-02 16:21:30 1276
转载 jni的数据转换,写的很好,转了
最近做Android开发的人越来越多,Android开发难免会遇到调用本地库,这就需要采用JNI技术,JNI本身并不复杂,但大多数开发者在类型转换上遇到麻烦,今天特地将几种常用类型转换写成一个实例来告诉大家如何转换,尤其是Java的类和C的结构的转换,结构体中嵌套结构体如何处理,这部分网上的资料也比较少。1. 编写Java类package com.jinhill.util;
2013-01-17 11:17:55 801
转载 C++中虚函数的实现原理
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过
2013-01-03 22:24:09 2198
原创 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 1288
原创 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 465
转载 Makefile详解-------写的很全,很详细,例子很好
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写mak
2012-11-18 22:45:44 1112 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 1184
原创 读文件信息
#include //头文件 struct stat info; //用于存储文件信息的结构体 stat(文件绝对路径, &info); //获得文件信息
2012-10-15 13:38:15 434
转载 Windows消息大全
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的: typ
2012-10-09 13:20:44 1004
原创 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 1775
原创 可变长度参数的实现
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 616
转载 编译器-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 3621
原创 确定一个对象是否是某个类或其派生类的对象的方法
第一:在类中申明,如DECLARE_DYNCREATE(CWebconfigCtrl)第二:在类的实现中,如IMPLEMENT_DYNCREATE(CWebconfigCtrl, COleControl)第三:判断的函数中添加,pWnd->IsKindOf(RUNTIME_CLASS(CWebconfigCtrl)),如是,返回TRUE,否,返回FALSE
2012-09-24 14:54:05 1257
原创 用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 3026
原创 多线程和锁的运用
//注释掉的地方时另一种锁的应用#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 355
转载 UDP编程
一: socket编程中的几种地址 Socket编程会遇到三种地址, 都是定义的结构体(struct): Struct in_addr { Unsigned int s_addr; } 这是一个IPv4地址,在IPv4的报文中,源地址和目的地址用32bit表示。通常定义在netinet/in.h中。 Stru
2012-08-17 17:53:24 455
原创 用时间的方法获得各不相同的数,用于数据库的主键
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 255
原创 浏览获得文件夹路径
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 413
转载 MFC中有关CWinAPP类的成员变量和成员方法的应用
CWinApp 应用程序类共63个成员(由Cobject-CCmdTarget-CWinThread派生)#include CWinApp类是你派生Windows应用程序对象的基类。应用程序对象提供初始化你的应用程序(及其每个实例)的成员函数,并运行该应用程序。每个使用MFC类的应用程序只能包含一个CWinApp派生类对象。当Windows调用由MFC库提供的WinMain
2012-08-05 15:56:46 3316
原创 获得本地时间的一段小程序
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 510
转载 几种语言的异常处理
一、 异常处理 (ExceptionalHandling)概述1. 异常处理异常处理又称异常错误处理,它提供了处理程序运行时出现任何意外或异常情况的方法。异常处理通常是防止未知错误的发生所采取的处理措施,对于某一类型的错误,异常处理应该提供相应的处理方法。例如,在设计程序时,如果可能会碰到除0错误或者数组访问越界错误,程序员应该在程序中设计相应的异常处理代码以便发生异常情况时
2012-08-02 23:16:38 626
转载 UML几种图的绘制
UML是Unified Modeling Language(统一建模语言)的简称。UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。UML是一套表示法系统。UML由一组图组成,它使得系统分析员可以利用这一标准来建立能够和客户、程序员以及任何参与程序开发的人员理解的多视角的系统蓝图。不同的风险承担人通常使用不同
2012-08-02 23:10:07 873
转载 CEvent类在线程同步中的作用
CEvent是用于线程间通信的一个封装类,他继承于CSyncObject,而CSyncObject又继承与类之父CobjectCEvent是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象使用 CEvent 类2007-07-10 19:44使用 CEvent 类 CEvent 类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。例
2012-07-31 20:01:22 1074
原创 随手写了一个简单的socket服务端和客户端
先开启服务端,在开启客户端。向服务端命令窗口输入字符,按ENTER键,则字符发送子客户端。之后客户端也可以发送字符至服务端。 服务端程序:#include #include main(){ SOCKET socknum, sendsocknum; //socket描述符
2012-07-31 09:22:32 706
原创 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 318
转载 STL中MAP的用法
一.Map概述Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,
2012-07-28 23:35:41 670
转载 using STL
STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有
2012-06-26 13:20:13 275
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人