- 博客(20)
- 资源 (1)
- 收藏
- 关注
转载 线程池的介绍及简单实现
线程池的介绍及简单实现 选择自 IOKE 的 Blog 关键字 线程池的介绍及简单实现出处 服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实
2010-03-19 16:47:00 580
转载 一个TCP包中的数据数据问题
一个TCP包中最大的数据2008-03-10 18:54在以太网中,最大传输单元MTU为1500个字节,在一个IP包中,去除IP包头的20个字节,可以传输的最大数据长度为1480个字节。在TCP包中,去除20个TCP包头,可以传输的最大数据段为1460个字节。因此,当数据超过最大数据长度时,将对该数据进行分片处理,在IP包头中会看到有多个片在传输,但标识号是相同的,表示
2010-03-12 10:04:00 4107
转载 网络缓存大小引发的问题
cp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下,send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大小要大,那么send函数立即返回,同时向网络中发送数据;否则,send向网络发送缓存中不能容纳的那部分数
2010-03-08 19:45:00 4875
转载 一个很有用的异步I/O套接字模型例子
对于一个windows网络编程初学者,下面方法是经典入门。 初学者建议不要用MFC提供的类,而用windows API做一个简单服务器和客户端,这样有助于对socket编程机制的理解。 为了简单起见,应用程序是基于MFC的标准对话框。 Winsock用WINDOWS API实现: (1)服务器端有两个线程: 主线程 — 你需要编写以下函数来实现 #define N
2010-01-30 10:56:00 1237
转载 CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别
CreateThread是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。线程函数定义为:DWORD WINAPI _yourThreadFun(LPVOID pP
2010-01-22 17:24:00 467
原创 static作用域小问题和解决方案
这是一个作用域的问题! 成员函数的作用域是类域, 而在类体外加上static不是表示静态函数,表示的是函数拥有文件域(file scope) 而类域是小于文件域,强行把类域扩大到文件域,就会出错。 如下代码: class CA { public: static void display(void); }; static void CA::display(void) { // ERROR! co
2010-01-14 15:58:00 852 1
转载 类封装线程(动态线程)
error C2664: CreateThread : cannot convert parameter 3 from unsigned long (void *) to unsigned long (__stdcall *)(void *) 开发平台:VC6.0错误原因:类成员函数作为线程函数时,必须是静态成员函数。 解决办法:static DWORD WINA
2010-01-14 14:26:00 1179
转载 深入GetMessage和PeekMessage
深入GetMessage和PeekMessage Bob GundersonMSDN技术组作于:1992年11月11日 Creamdog译于:2002年3月13日 译者的话该文重点讲述了Windows处理事件、消息的具体过程和步骤。尤其是在系系处理鼠标键盘事件的过程上做了详解。通过这篇文章,你将对Windows的消息处理机制有一个较全面的了解。概念
2010-01-06 19:18:00 1140
转载 CAsyncSocket及CSocket
MFC疑难注解:CAsyncSocket及CSocket2009-12-21 20:23MFC疑难注解:CAsyncSocket及CSocketMFC对SOCKET编程的支持其实是很充分的,然而其文档是语焉不详的。以至于大多数用VC编写的功能稍复杂的网络程序,还是使用API的。故CAsyncSocket及CSocket事实上成为疑难,群众多敬而远之。余好事者也,不忍
2010-01-05 19:42:00 2662
转载 MFC和Win32
MFC和Win32 MFC Object和Windows Object的关系 MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象
2009-12-15 21:36:00 798
转载 多路复用I/O模型支持多Client
多路复用I/O模型支持多Client的实现及效率讨论 发表日期:2004-04-28作者:(CSDN)HuangRG[] 出处: 在头文件中包含了“winsock.h”和"#pragma comment(lib,"wsock32")"1. 引言 多路复用I/O模型(select)是UNIX/L
2009-12-13 20:03:00 765
转载 输入阻抗和输出阻抗小结(转)
一、输入阻抗输入阻抗是指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。你可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。输入阻抗跟一个普通的电抗元件没什么两样,它反映了对电流阻碍作用的大小。对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;而对于电流驱动型的电路,输入阻抗越小
2009-12-03 11:16:00 2209
原创 数组与指针内存比较注意
数组char *a[]=“hello”; 指针char *p=“hi”; a是整个char的首地址,是个常量!对a的赋值是错的!只可以对其内容进行改变!且sizeof(a)=6;a大小固定为6,不可再改变了!注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。不论数组 a 的容量是多少,sizeof(a)始终等于 sizeof(char *)。其实质是v
2009-11-28 15:56:00 553
原创 assert()宏的使用!
使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。 在调试结束后,可以通过在包含#include 的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下: #include #define NDEBUG #include 编程新手常犯这种错误,他们没有意识到内存分配会不成功。常用解决办法是,在使用内存之前检
2009-11-28 15:18:00 618
原创 extern "C" __stdcall对函数的使用声明
extern "C" __stdcall对函数的使用声明如下: 1 extern "C": 在当调用别人写的库时,注意库是使用何种编译器,若是C的,则你在用VC中的C++编译器调用时就得加 #if defined(__cplusplus) extern "C" {#endif ..........声明被调用的函数名 #
2009-11-28 11:01:00 3907
转载 探索C++的秘密之详解extern "C"
1楼时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加
2009-11-28 10:36:00 580
转载 浮点数的比较
浮点数的比较 在数学运算当中经常会涉及到判断两个数是否相等的情况 对于整数很好处理 A==B这样的一个语句就可以解决全部的问题 但是对于浮点数是不同的 首先,浮点数在计算机当中的二进制表达方式就决定了大多数浮点数都是无法精确的表达的 现在的计算机大部分都是数字计算机,不是模拟机,数字机的离散化的数据表示方法自然无法精确表达大
2009-11-27 22:16:00 445
原创 响应改变Slider
Slider 没有自己的change 响应函数,需要在主窗口中添加:1:如果你的slider创建的时候是竖直的 ,让父窗口响应WM_VSCROLLvoid CAcq_FtpDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code her
2009-11-25 22:36:00 683
转载 c#类和结构体的关系
类:类是 C# 中功能最为强大的数据类型,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。结构体:结构体是轻量型的类,使用开销相对于类较小。两者的关系:1.数据类型:类和结构体都是数据类型,类是引用类型,结构体是值类型。2.继承性:类可以继承和被继承,而结构体隐式继承于object,不可以继承(除接口以外)和被继承3.构造函数:类和结构体都有默认(无参)构造函数,只不过
2009-11-24 20:14:00 564
转载 VC两种socket类比较
一、实现方法 微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易。CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法。这个类基于程序员了解网络通讯的假设,目的是为了在MFC中使用WinSock,程序员有责任处理诸如阻塞、字节顺序和在Unicode与MBCS 间转换字符的任务。为了给程序员提供更方便的接口以自
2009-11-24 19:22:00 4269 1
高质量C++编程指南
2009-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人