自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

转载 send 和 WSASend性能比较

socket本身有一个send函数,这个函数的只能一次发送一个缓冲区,这对于在发送大量数据的时候或者数据包很多的时候就可能导致可能导致系统的低性能,主要原因在于调用太多次的send函数,导致从用户态到核心态的不断切换,而耗费了当前的CPU时钟周期。那么解决办法就是减少调用send的次数,一种办法就是使用一个大一点的BUFFER,在发送数据的时候将多个数据包的内容COPY到这个BUFFER中

2012-09-30 01:02:21 11852

原创 技术小记7(C++)

1.将构造函数或析构函数定义为protected,可表示将该类实现为"基类"2.class CA{ public:CA(){}CA(...) { CA();...};如果这样调用构造函数,类中的成员变量的默认构造函数在CA()前被调用一次,在CA()中又要被调用一次};3.CRITICAL_SECTION 不能复制4. 在vc++中程序中用了srando

2012-09-30 00:26:54 579

转载 sockaddr_in , sockaddr , in_addr区别

sockaddr_in , sockaddr , in_addr区别struct   sockaddr   {                  unsigned   short   sa_family;                     char   sa_data[14];             };    上面是通用的socket地址,具体到Interne

2012-09-29 23:21:41 733

转载 #pragam once 和 #ifndef 预编译头

为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 一些声明语句

2012-09-29 23:07:11 1980

转载 异步IO、APC、IO完成端口、线程池与高性能服务器

转自:http://blog.dream4dev.com/article.asp?id=127异步IO、APC、IO完成端口、线程池与高性能服务器之一异步IO 背景:轮询PIO DMA中断    早期IO设备的速度与CPU相比,还不是太悬殊。CPU定时轮询一遍IO设备,看看有无处理要求,有则加以处理,完成后返回继续工作。至今,软盘驱动器还保留着这种轮询工作方式。     随着CPU性能的迅

2012-09-29 17:12:10 1578

原创 网络小记3

1.The advantage of using select is the capability to multiplex connections and I/O on many sockets from a single thread2. we need to make one subtle distinction. The WSAAsyncSelect and WSAEventSel

2012-09-29 15:05:30 426

转载 Get Closer to the Wire with High-Performance Sockets in .NET

Daryn KielyParts of this article are based on a prerelease version of the .NET Framework 2.0. Those sections are subject to change.This article discusses:Basic socket program

2012-09-29 14:16:50 1929

转载 I/O Multiplexing & Scalable Socket Servers

(引自:http://www.drdobbs.com http://www.artima.com/)The Session Initiation Protocol (SIP) is a signaling protocol for Internet conferencing, telephony, presence, event notification, and instant mess

2012-09-29 13:41:23 1811

转载 WSA_FLAG_OVERLAPPED Is Needed for Non-Blocking Sockets

SUMMARYThe Winsock 2 socket flag WSA_FLAG_OVERLAPPED needs to be set if the socket will be used in non-blocking mode when running on Windows NT 4.0. Failure to set this flag can result in subsequent

2012-09-29 10:34:33 1156

转载 Socket overlapped I/O versus blocking/nonblocking mode

Article ID: 181611 - View products that this article applies to.This article was previously published under Q181611Expand all |Collapse allOn This PageSUMMARYMORE INFORMATION

2012-09-29 10:27:26 1916

原创 网络小记3(reactor, proactor)

Standard/classic Reactor:Step 1) wait for event (Reactor job)Step 2) dispatch "Ready-to-Read" event to user handler ( Reactor job)Step 3) read data (user handler job)Step 4) process data ( user ha

2012-09-29 10:24:01 477

原创 网络小计2

1.对于要处理众多小连接的服务器,需要投递更多的AcceptEx检查系统是否有足够AcceptEx的一个方法是:将WSAEventSelect关联到FD_ACCEPT,如果有连接到来而没有足够的AcceptEx时,注册事件会被触发AcceptEx的一个好处是:接收连接同时会接受数据,For servers whose clients send an initial reques

2012-09-28 11:07:51 710

转载 SOCKET各种模型下并发数量

SOCKET各种模型下并发数量  今天在公司认真的看了一下SOCKET的编程,对其中一些编程模型的并发数量原来一直是半清不明,正好趁着做当前项目的机会把他理清,目前在SOCKET上的编程模型主要有以下几种(WIN为主,LINUX和UNIX用得较少):1、普通的阻塞和非阻塞编程。利用线程池技术和内存池,SOCKET池技术,基本可以处理一千五百个左右的SOCKET连接,

2012-09-28 00:40:32 711

原创 网络小计1

1.使用同步SOCKET就用select模型,并且最好带一个超时2.Assuming 0 is an invalid socket handle value. Uncontrollably lame.3the proper closure of a connected stream socket involves:call shutdown() with the how e

2012-09-27 17:41:42 443

原创 技术小记6(C++)

友元函数(friend function)1. 什么是友元函数?    一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员2. 友元函数的用处体现在哪里?    2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类    2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑

2012-09-24 17:23:50 435

原创 技术小记5(C++)

1.Add( int * value );  Add( const int * value );两个函数不一样2.vector加入对象时,调用copy assignment,且形参为const,然后调用 operator=()赋值函数(形参可以是const,也可以不是)3.纯虚函数必须在子类中重新声明,但它还是可以在基类中有自己的实现4.char *p = "hello";

2012-09-21 16:43:31 387

原创 技术小记4(C++)

1.减少依赖Handle类,即通过包含来实现功能class CPerson{ public:   void func1()   {       pImpl->func1();    }private:   CPersonImpl* pImpl;};接口类,即通过继承来实现功能class IPerson{

2012-09-20 16:35:45 434

原创 技术小记3(dll)

在VC中,若用了__declspec(dllexport )   ,就可不用.DEF文件了。.DEF文件主要用于指定程序的输入。 对于C++程序动态链接库,一般都要加上extern   "C ",以便能为C所调用。DEF文件定义你么输出的函数映射,这是属于老式程序的方式;现在,如果已经在源文件的函数定义中加了__declspec(dllexport),就不需要在DEF文件中在定义了。

2012-09-19 10:32:30 619

原创 技术小记2(string操作)

std::stringsring::substr(begpos);string::find(begpos, ch);std::string::size_type beg = url.find( "http://" );_string_replace( std::string source, const char* old, const char* dest ){wh

2012-09-14 15:32:45 457

原创 %S(大写S)

wchar_t value[512] = { 0 };swprintf(value, L"%S", "what are you doing?");printf("%S\n", value);%S:用来将ANSI字符写入wchar_t内存,或者将wchar_t内存打印出来TCHAR szBuffer[128] = { 0 };_stprintf(szBuffer,

2012-09-12 11:56:40 4177

原创 High performance IOCP

IO Completion Ports provide a specialised notification mechanism for completed asynchronous I/O. Completed I/O is queued at an object called a completion port which then calls a programmer-supplied ca

2012-09-05 18:51:22 728

转载 Designing High-Performance Windows Client/Server Socket Classes

Designing High-Performance Windows Client/Server Socket Classes Author: Sahlan Diver, ContractorDate: Jan 2009Revised: April 2009Revised May 2nd 2009 after further simplifications to the cod

2012-09-05 16:14:48 1774

原创 WinSock Tips

1.使用同步SOCKET就用select模型,并且最好带一个超时2.Assuming 0 is an invalid socket handle value. Uncontrollably lame.3the proper closure of a connected stream socket involves:call shutdown() with the how equ

2012-09-05 15:31:29 620

原创 技术积累

① do{if()break;if()break;}while(false);  这样做事为了避免大量的嵌套语句②Pimpl机制是Private Implementation的缩写,我们常常听到诸如“不要改动你的公有接口”这样的建议,所以我们一般都会修改私有接口,但是这会导致包含该头文件的所有源文件都要重新编译,这会是个麻烦事儿。Pimpl机制,

2012-09-01 14:50:56 392

原创 编码规范

How can we use a class Foo in a header file without access to its definition?We can declare data members of type Foo* or Foo&.We can declare (but not define) functions with arguments, and/or retur

2012-09-01 12:26:39 808

Windows核心编程第5版英文版.chm

Windows核心编程第5版英文版.chm

2012-03-31

c++高手箴言(有关WINDOWS编程)

c++高手箴言,经验总结!CHM 有关WINDOWS编程)

2008-11-24

空空如也

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

TA关注的人

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