自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ Windows Socket五种I/O模型之完成端口模型

前面几章已经分别介绍了window下socket 网络编程的几种模式,今天简单的介绍一下最后一个模型:完成端口(completionPort)模型。关于他的一些优点网上有一堆,这边我也不再一一介绍,点而言之就是他充分利用内核对象的调度,只使用少量的几个线程来梳理和客户端所有通信,最大限度的提高了网络通信的性能。下面简单介绍一下主要涉及主要函数。最优线程数根据实际应用中发现,Cup核数*2+2这个数量是最优线程数(网上查询到的,我也不知道原因),获取系统内核数可调用VOID GetSystemInfo

2021-11-29 18:01:23 1472

原创 C++ Windows Socket五种I/O模型之重叠IO模型(二)

前面一节我们简单的介绍了事件通知的重叠IO模型,有兴趣的可以点击C++ Windows Socket五种I/O模型之重叠IO模型(一)查看一下,这一章主要是介绍一下完成例程模型。基本原理完成例程在投递一个请求之后如(WSARecv)之后,系统完成之后不再以事件通知你,而是在完成之后自动调用你提供的LPWSAOVERLAPPED_COMPLETION_ROUTINE 类型的的回调函数来处理消息。WSARecv在重叠模型中,接收数据就要靠它了,它的参数也比recv要多,和事件通知重叠唯一不同的是最后一

2021-11-26 23:11:30 931

原创 C++ Windows Socket五种I/O模型之重叠IO模型(一)

重叠模型的基本原理简单来说,重叠模型就是让应用程序使用重叠数据结构WSAOVERLAPPED,次投递一个或多个Winsock I/O请求。针对这些提交的请求,在它们完成之后,应用程序会收到通知,于是就可以通过自己另外的代码来处理这些数据了。需要注意的是,有两个方法可以用来管理重叠IO请求的完成情况(就是说接到重叠操作完成的通知):1. 事件对象通知(event object notification)2. 完成例程(completion routines) ,注意,这里并不是完成端口本篇文章主要讲

2021-11-26 15:16:06 972

原创 C++ Windows Socket五种I/O模型之WSAEventSelect模型

C++ Windows Socket五种I/O模型之WSAEventSelect模型WSAEventSelect模型WSAEventSelect 模型是 Windows socekts 提供的另一个有用异步 IO 模型,与 select 模型相比较,WSAAsyncSelect 与 WSAEventSelect 模型都是被动接受的。网络事件发生时,系统通知应用程序。而 select 模型是主动的,应用程序主动调用 select 函数来检查是否发生了网络事件。WSAEventSelect函数int W

2021-11-24 23:13:10 1282

原创 C++ Windows Socket五种I/O模型之WSAAsyncSelect模型

WSAAsyncSelect模型是Select模型的异步版本,在调用Select()函数的时候会发生阻塞现象,而WSAAsyncSelect()则不会。不同点1.WSAAsyncSelect模型是异步的。在应用程序中调用WSAAsyncSelect()函数,通知系统感兴趣的网络事件,该函数立即返回,应用程序继续执行;2.发生网络事件时,应用程序得到的通知方式不同。Select()函数返回时,说明某个或者某些套接字满足可读可写的条件,应用程序需要使用FD_ISSET宏,判断套接字是否存在可读可写集合中。

2021-03-28 23:16:23 387

原创 C++ Windows Socket五种I/O模型之Select模型

概述Windows操作系统提供了选择(Select)、异步选择 (WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口 (Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。今天主要讲一下Select 模型。涉及的APIint WSAAPI select(int nfds,fd_set *readfds,fd_set *writefds,

2021-03-24 21:59:43 773

原创 C++ TCP通信

流程图头文件和库#include <iostream>#include <WinSock2.h>#include <WS2tcpip.h>#include <thread>#pragma comment (lib,"ws2_32.lib")TCP 和UDP前面部分基本一致,只是在bind()函数之后,服务端有listen()和accept()过程,bind()之前的不详细的讲解,详细的API讲解可以参考我写的前一篇文章:DUP通信初始

2021-03-23 16:30:14 2334

原创 C++ UDP通信

C++ UDP通信流程图头文件和库#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")初始化套接字库初始化函数:int WSAAPI WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);返回值:如果申请成功,返回值为 0,失败直接返回失败的代码,无法调用WSAGetLastError()。示例:WSADATA wsData;int nR

2021-03-21 22:46:41 5568 1

ConnectPoolDemo.rar

编译环境:Vs2010 unicoude 使用InitInterface 初始化,再使用守护类ADOConnectGuard 类获取数据库连接

2020-06-07

CWebpage类.zip

加载网页的控件类,可以和javascript进行数据的交互,可以用于mfc界面的开发.............

2019-07-22

空空如也

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

TA关注的人

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