自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 解决方案:写入键/Software/Classes/.xsd/OpenWithList/devenv.exe

今天刚装了个系统,IBM原装系统,想再晚上睡觉前把该装的程序都装上,谁知在装VS2005的时候报错了,写入键/Software/Classes/.xsd/OpenWithList/devenv.exe错误,用了这么久VS2005了,重来就没遇到过这种问题,怪了,不相信,取消又装了一次,还是一样,网上一查,原来也有同仁遇到过同样问题,一试OK 修改注册表权限:HEKY-LOCAL-M

2009-09-13 23:16:00 312

转载 TCP定时器详解

一、TCP协议1、TCP 通过以下方式提供可靠性: ◆ 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。 ◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它 就重发这个报文段。 ◆ 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。 ◆ TCP将保持它首部和

2009-05-06 23:56:00 352

原创 游戏中的脚本语言(学习)

 本文最初发表于《游戏创造》(http://www.chinagcn.com)2007年8月刊。版权所有,侵权必究。如蒙转载,必须保留本声明,和作者署名;不得用于商业用途,必须保证全文完整。网络版首次发表于恋花蝶的博客(http://blog.csdn.net/lanphaday),与杂志版本稍有不同,略作删改。 游戏中的脚本语言网易广州 赖勇浩http://blog.csdn.net

2009-04-15 22:35:00 780

转载 特殊的IP地址介绍

 来源:中国协议分析网 作者: 编辑:shaoping就像我们每个人都有一个身份证号码一样,网络里的每台电脑(更确切地说,是每一个设备的网络接口)都有一个ip地址用于标示自己。我们可能都知道这些地址由四个字节组成,用点分十进制表示以及它们的a,b,c分类等,然而,在总数大约为四十多亿个可用ip地址里,你知道下面一些常见的有特殊意义地址吗?我们一起来看看吧:   一、0.0.0.0   严格说来,0

2009-04-14 23:12:00 207

转载 对IP首部检验和的理解

      很多文章对ip首部检验和的计算介绍得很简略,在理解上常常会比较困难。这篇文章是我自己的一些理解。或许也有不正确的地方,希望大家指正。这个问题一直困绕了我很长时间,今天终于理解了。       我们可以通过spynet sniffer抓包软件,抓取一个ip数据包进行分析研究。 下面我以本机抓到的一个完整的ip首部为例(红色字体表示): 0000: 00 e0 0f 7d 1e ba 00

2009-04-14 23:04:00 348

原创 WINDOWS网络编程技术 读书笔记

名字注册和解析名字注册和解析模型,与协议无关,把IP地址和名字相关联起来,Winsock服务器地址也可通过服务,把地址注册自己的服务器,用户方便查找,最常用的名字空间1、 针对IP的DNS(静态名字空间)2、 针对IPX的NDS(固定名字空间)IPX: Internetwork Packet Exchange(网间数据包交换)已或支持的名字空间:N S _ S A P 1 S A P名字空间

2009-04-13 00:23:00 429

转载 集群式游戏服务器架构方案设计开发

集群式游戏服务器架构方案设计开发自从2003年开发VOIP Radius Server以及修改Gnugk依赖,从事服务器开发已经近五年了,对服务器开发也有一些自己独到的看法以及见解。当摆脱了技术本身的束缚之后,才理解重要的并不是某种技术的运用,而是整体设计的考虑,也慢慢明白了设计是开发的灵魂的道理。从技术层面来看,各个平台都有一些自己特有的东西,比如Windows 平台下面的IOCP技术,可以说为

2009-04-12 15:37:00 1251

转载 QQ游戏百万人同时在线服务器架构实现

转帖------作者:Bloghttp://blog.csdn.net/sodmeQQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的

2009-04-12 10:24:00 390

原创 内存调试,3天值吗 (默认程序调试器的修改)

    最近一个同事一直被一个Debulg困扰着,都找了3天了,还是找不出个所以来,问题主要是在编译器环境下允许调试程序不会出现,而直接运行程序就莫名奇妙的跳出Debulg错误(内存块的问题)    最后项目经理亲自出马,解决过程:    1、找了个不知道什么高深的测试软件(明天补上),监视进程中线程的运行状态(测试软件还能监视软件的通信情况,厉害),还是没有找到在哪个线程中,这下麻烦了

2009-04-01 23:21:00 249

原创 几款常用的调试工具

    调试程序是程序原最头痛,也是最费时的一件事情,内存泄露,内存地址出错,Debulg...,下面几款比较使用的调试工具 一、DebugDiag(内存泄露 memery leaks)      微软自己的一款内存测试工具,监视应用是否存在内存泄露问题       下载地址:http://www.microsoft.com/downloads/details.aspx?Fam

2009-03-31 21:26:00 656

原创 WinSocket 函数解析(新手篇)(二)

5、bind函数结构: int bind(SOCKET s,      const struct sockaddr FAR * name,      int namelen)      参数解析: SOCKET 要绑定的套间字 name 绑定的地址 namelen 地址长度扩展: sockaddr:用来指定IP地址和服务端口信息 struct sockaddr_in {  short     

2009-03-31 00:31:00 454

原创 WinSocket 函数解析(新手篇)(一)

 1、WSAStartup     函数结构:     Int WSAStartup(WORD wVersionRequested,                               LPWSDATA lpWSAData)    作用:    载入合适的Winsock动态链接库    参数解析:    wVersionRequested:指定加载的WinSocket版本信息,window

2009-03-29 23:53:00 532

原创 网络原理和协议(新手篇)

 协议的一些特性:     1、 面向消息:网络之间传输的就是消息,通过消息进行通信     2、 面向连接和无连接:           a) 连接(TCP):必须先建立连接后才能进行通信,即上一条消息通信          b) 无连接(UDP):不管三七二十一发消息发过去就好了,不关心客户端能否接到到发出的信息,发        邮件即使如此,网那个地址发就好了    3、 可靠性和次序性:

2009-03-29 23:01:00 307

原创 异步重叠IO的实现原理 (新手篇)

         异步重叠IO的实现原理       原理图:                               重叠IO实现异步,主要是利用重叠的命名,加上事件的同同步       在使用重叠I/O时,线程需要创建OVERLAPPED结构以供I/O处理。该结构中最重要的成员是hEvent,它是作为一个同步对象而存在,如果hEvent为NULL,那么此时的同步对象即为

2009-03-28 23:32:00 984

原创 Windwos 网络编程 命名管道与邮槽的比较(新手篇)

在上一篇写了一些关于邮槽的内容,刚看了命名管道之后,谈一谈他们之间的区别与联系 邮槽:只允许从客户端发送到服务器,没有可靠性保证,根据广播通信体系所设计,使用邮槽可以建立不可靠的单向数据传输。其优点就是可以很方便的向一个或者多个服务器广播消息 消息管道(Message Pipe)用于设置应用程序间的一条永久通讯通道,通过该通道可以象自己的应用程序访问一个平面文件一样读写数据。

2009-03-28 21:36:00 599

原创 WINDOWS网络编程技术 网络重定向(新手篇)

网络重定向器(Network Redirector)   网络重定向器(Network Redirector),或仅叫做重定向器(redirector),是一个操作系统驱动,它从一个远程设备发送和接收数据。一个网络重定向器也常提供定位,打开,阅读,写,和删除文件和提交打印工作的机制。它也使可用的应用程序服务例如命名管道和Mailslots。当一个应用需要从一个远程设备发送或接收数据,它发送一个呼叫

2009-03-25 23:07:00 621

原创 WINDOWS网络编程技术 NETBOIS (新手篇)

     “网络基本输入/输出系统”(Network Basic Input/Output System, NetBIOS)是一种标准的应用程序编程接口( A P I),1 9 8 3年由S y t e k公司专为I B M开发成功。N e t B I O S为网络通信定义了一种编程接口,但却没有详细定义物理性的“帧”如何在网上传输。      LANA编号 (LAN adapter, L

2009-03-25 21:25:00 314

转载 Boost智能指针——weak_ptr

Boost智能指针——weak_ptr 循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include #include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef boost

2009-03-12 22:58:00 1509 1

原创 智能指针 boost(scoped_ptr,scoped_array,shared_ptr,shared_array) 和 std (auto_ptr)的比较

1、std::auto_ptrstd::auto_ptr相信都接触使用过,对于一般的用户它绝对够用了,new一块内存自动释放 例如:int main(){ std::auto_ptr p(new int); return 0;}   但它的不足之处在与,对象拥有者只有一个,换句话说:就是new出来的内存空间只属于一个对象 例如:int m

2009-03-12 22:09:00 1591

原创 ACE_Singleton,ACE_Object_Manager

ACE_Singleton singleton模式的一个很好实力,增加了在线程中的安全行,使用ACE_Object_Manage管理势力,不用对其进行资源释放 #pragma once#include class CTest{ friend class ACE_Singleton;public: CTest(void);public: ~CTest(void); //ACE_AL

2009-01-10 20:36:00 1587

转载 ACE_Select_Reactor的Notify功能实现浅析

来至:http://www.jiazi.cn/web/?9240/viewspace-304作者: ydogg 1.     前言本文关注平台为Win32, 但在其它的类Unix平台,就实现框架而言并没有太多变化,惟一不同的是用于底层机制的ACE_Pipe的实现。但是,为了解决某些特别的原因,如大量的通知存储、规避悬空处理器指针等,ACE也提供了一种有别于Pipe的解决方案,其采用消息

2008-12-17 23:22:00 480

转载 ACE_Select_Reactor 之 管道通信 Pipe

ACE_Select_Reactor 基于ACE_Pipe实现,为此了解了下Pipe通信编程命名管道的连接和通讯采用如下方式:                 *   在服务器端第一次创建命名管道后等待连接,当客户端连接成功后服务器端的命名管道就用作通讯用途。如果需要再次等待连接,服务器端就需要再次打开命名管道(创建一个命名管道的实例)并等待连接。             *   对于

2008-12-16 23:55:00 446

转载 ACE介绍

ACE作为通讯方面的开源架构,不但用c++实现,而且用JAVA实作的架构已经可以使用了,由此看来掌握ACE成为每个开发通讯程序的程序员的必备技能。ACE的库分为4个层次:        OS适配层 该层将ACE的较高层和与OS机制相关联的平台特有的依赖屏蔽开来。      OO包装层 封装并增强在像Win32和UNIX这样的现代操作系统上可用的并发、进程间通信(IPC)、以及虚拟内存机制。

2008-12-16 22:30:00 337

转载 Oracle与SQLServer选型时不得不说的三个小差异

 甲骨文与微软两大数据库产品,是数据库发展史上的两座大山。这让我们在数据库选型的时候,基本上没有多大的选择余地,不是微软就是甲骨文。但是,从他们两者来说,还是有比较大的差异。今天笔者就谈谈在数据库选型的时候,不得不关注的他们之间的三个小差异。了解这些区别,能够给我们数据库选型带来很大的指导作用。    一、所支持平台的差异。    甲骨文的数据库系统,是在JAVA平台上开发起来的,所以,保持着众多

2008-12-15 20:40:00 118

转载 BSTR、char*和CString转换

BSTR、char*和CString转换  (1) char*转换成CString  若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:char chArray[] = "This is a test"; char * p = "This is a test";   或LPSTR p = "This is a test";

2008-06-09 14:49:00 150

转载 Windows Socket API 使用经验

本文是我在进行MS-Windows、HP-Unix网络编程的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。一、WSAStartup函数    int WSAStartup(      WORD wVersionRequested,        LPWSADATA lpWSAData      );   

2008-05-22 17:47:00 166

转载 Socket 的 Send Recv 的长度问题?

一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。windows的缓冲区经验值是4kSocket本身分为两种,流(TCP)和数据报(UDP),你的问题针对这两种不同使用而结论不一样。甚至还和你是用阻塞、还是非阻塞

2008-05-22 17:41:00 750 1

转载 VC小技巧 15个问题

一、 一次只运行一个程序实例下列两种方式都可以实现,建议采用第二种方式:1、 if( FindWindow(NULL,"程序标题"))          exit(0);2、BOOL CDemoTBarEApp::InstanceIsRun(){ HANDLE m_hMutex; m_hMutex = ::CreateMutex(NULL, TRUE, _T("YourApplicatio

2008-03-13 20:40:00 260

原创 Windows 媒体处理函数(.WAV)

平时,你在多媒体软件的设计中是怎样处理声音文件的呢?使用Windows 提供的API函数 sndPlaySound来实现WAV文件的播放?sndPlaySound("res//BOMB.WAV", SND_ASYNC|SND_NODEFAULT);但是如果遇到比较大的WAV文件怎么办呢,它大于内存能使用的内存,所以不能用sndPalySound()可以用mciSendCommand()

2008-03-02 21:37:00 450 1

原创 去除MFC导入位图的背景色

怎样把前景位图的背景颜色去掉,而使背景位图能看到呢?实现的原理是:指定一种颜色,然后对这种颜色进行处理,使它的色素不画出来。如上面的狮子,指定白色RGB(255,255,255)为透明色,就行了。下面就介绍一个函数TransparentBitmap()://本函数把一种指定的颜色变成透明色,并可改变大小//   hdc 显示句柄//   hBitmap要显示的位图//   xS

2008-02-25 20:01:00 853 1

原创 线程 进程学习之五 线程间的通信

通常情况下,一个次级线程要为主线程完成某种特定类型的任务,这就隐含着表示在主线程和次级线程之间需要建立一个通信的通道。一般情况下,有下面的几种方法实现这种通信任务:使用全局变量(上一节的例子其实使用的就是这种方法)、使用事件对象、使用消息。一、使用消息通信在Windows程序设计中,应用程序的每一个线程都拥有自己的消息队列,甚至工作线程也不例外,这样一来,就使得线程之间利用消息来传递信息就

2008-02-20 23:09:00 243

原创 线程 进程学习之四 CreateThread AfxBeginThread

创建一个进程可以用CreateThread或AfxBeginThread,二者有什么优缺点...偶是菜鸟就不是很知道了,只知道一点,CreateThread调用的Callback函数可以DWORD,而AfxBeginThread必须是UNIT类型的,不然就不能编译通过使用CreateThread函数创建线程,CreateThread的原型如下:HANDLE CreateThread(

2008-02-20 21:17:00 414

原创 线程 进程学习之三 进程的关闭

关闭进程自然会想到ExitProcess()不过好像纯粹的调用ExitProcess不嫩结束打开的应用程序,只能结束本程序(运行产生的EXE程序),查看了一些还有TriminateProcess也能终止进程,效果相当于管理器中直接掐掉进程 ExitProcess()只能强制执行本进程的退出,如果要在一个进程中强制结束其他的进程就要用TerminateProcess()来实现。与ExitPr

2008-02-20 21:02:00 268

原创 线程 进程学习之二 SetPriorityClass

一、创建了进程,优先权当然也设置咯,可以再CreateProcess参数中设置,也可以调用SetPriorityClass进行设置SetPriorityClass设置优先权函数原型:BOOL SetPriorityClass( HANDLE hProcess, DWORD dwPriorityClass);GetPriorityClass得到优先权函

2008-02-20 20:38:00 1522

原创 线程 进程学习之一 CreateProcess

线程与进程,对与我来说绝对是一个菜鸟 ,从CreatePress()开始了学习之路CreateProcess函数一、函数原型:BOOL CreateProcess(    LPCTSTR lpApplicationName,            LPTSTR lpCommandLine,            LPSECURITY_ATTRIBUTES lpProcessAttrib

2008-02-20 20:30:00 306

转载 数据结构笔记--排序

 排序;1、插入排序(直接插入排序和希尔排序)2、选择排序(直接选择排序和堆排序)3、交换排序(冒泡排序和快速排序)4、归并排序5、基数排序---------------------直接插入排序说明:逐个将后一个数加到前面的排好的序中。在直接插入排序过程中,对其中一个记录的插入排序称为一次排序;直接插入排序是从第二个记录开始进行的,因此,长度为n的记录序列需要进行n-1次排序才能完成整

2007-11-01 15:52:00 216

多客户端聊天服务器

多客户端聊天服务器,内有封装好的Socket类

2008-06-25

地图编辑器

在rev 中添加maps.bmp图片(地图)

2008-06-25

空空如也

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

TA关注的人

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