[置顶] [推荐] 高性能大容量SOCKET并发(一):IOCP完成端口例子介绍 [问题点数:300分,结帖人SQLDebug_Fan]

Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
结帖率 100%
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs6
本版专家分:8800
Bbs7
本版专家分:14382
Blank
黄花 2012年5月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2012年4月 Delphi大版内专家分月排行榜第三
2011年8月 Delphi大版内专家分月排行榜第三
Bbs1
本版专家分:70
Bbs8
本版专家分:41830
Blank
红花 2012年10月 Delphi大版内专家分月排行榜第一
2012年9月 Delphi大版内专家分月排行榜第一
2012年8月 Delphi大版内专家分月排行榜第一
2012年7月 Delphi大版内专家分月排行榜第一
2012年6月 Delphi大版内专家分月排行榜第一
2012年5月 Delphi大版内专家分月排行榜第一
2011年12月 Delphi大版内专家分月排行榜第一
Blank
黄花 2012年4月 Delphi大版内专家分月排行榜第二
2012年3月 Delphi大版内专家分月排行榜第二
2012年1月 Delphi大版内专家分月排行榜第二
2011年11月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2012年2月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:16106
Blank
红花 2012年4月 Delphi大版内专家分月排行榜第一
2012年3月 Delphi大版内专家分月排行榜第一
Bbs3
本版专家分:749
Bbs2
本版专家分:121
Bbs5
本版专家分:3052
Bbs2
本版专家分:132
Bbs7
本版专家分:27009
Blank
蓝花 2012年12月 Delphi大版内专家分月排行榜第三
2012年11月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs1
本版专家分:10
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:13953
Bbs7
本版专家分:18836
Blank
红花 2011年8月 Delphi大版内专家分月排行榜第一
2011年5月 Delphi大版内专家分月排行榜第一
Blank
黄花 2011年9月 Delphi大版内专家分月排行榜第二
2011年7月 Delphi大版内专家分月排行榜第二
2011年6月 Delphi大版内专家分月排行榜第二
2011年4月 Delphi大版内专家分月排行榜第二
Bbs1
本版专家分:7
Bbs7
本版专家分:13557
Bbs1
本版专家分:15
Bbs7
本版专家分:27009
Blank
蓝花 2012年12月 Delphi大版内专家分月排行榜第三
2012年11月 Delphi大版内专家分月排行榜第三
Bbs1
本版专家分:5
Bbs1
本版专家分:5
Bbs7
本版专家分:17922
Blank
红花 2010年5月 Delphi大版内专家分月排行榜第一
Bbs7
本版专家分:17922
Blank
红花 2010年5月 Delphi大版内专家分月排行榜第一
Bbs7
本版专家分:27009
Blank
蓝花 2012年12月 Delphi大版内专家分月排行榜第三
2012年11月 Delphi大版内专家分月排行榜第三
Bbs5
本版专家分:3656
Bbs5
本版专家分:3656
Bbs5
本版专家分:3656
Bbs7
本版专家分:27009
Blank
蓝花 2012年12月 Delphi大版内专家分月排行榜第三
2012年11月 Delphi大版内专家分月排行榜第三
Bbs5
本版专家分:3656
Bbs5
本版专家分:2439
Blank
GitHub 绑定GitHub第三方账户获取
Bbs1
本版专家分:5
Bbs1
本版专家分:5
Bbs1
本版专家分:5
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs7
本版专家分:26153
Blank
红花 2010年7月 Delphi大版内专家分月排行榜第一
2010年3月 Delphi大版内专家分月排行榜第一
Blank
蓝花 2010年10月 Delphi大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第三
Bbs1
本版专家分:5
Bbs1
本版专家分:5
Bbs1
本版专家分:10
IOCP里GetQueuedCompletionStatus之后应该如何处理最完善?
IOCP里调用GetQueuedCompletionStatus读取一个队列后,有: BOOL的status返回值, DWORD的dwBytesTransferred读取字节数, PULONG_PTR
IOCP数据中间件
IOCP数据中间件 每包最大8K(8192字节),超过8187字节的数据要分包传输 首包有5个字节的包头:4字节数据长度(告诉对方,此次总共将传输几字节数据) + 1字节命令字(告诉对方,此次请求的何种命令) 命令分类1)请求查询数据,应答查询数据2)请求提交数据,应答提交数据3)请求上传文件,应答上传文件4)请求下载文件,应答下载文件5)请求发送字符串消息,应答发送字符串消息 un...
分享一个自己写的IOCP服务器的类源码
工作任务,需要写一个服务端软件,客户端连接数大概有几百台,以后每年以几十台的数量增加,以往的经验都是使用多线程+同步<em>socket</em>网络编程,实现既简单逻辑上又清楚明白,这次写服务端考虑到性能、效率、资源分配等问题肯定是不能这么做了,查了一些资料最终选择IO<em>完成端口</em>这个模型,记得《Windows核心编程》一书中作者曾说过“<em>完成端口</em>恐怕是Windows里最复杂的内核对象”这样的话
c++ IOCP和重叠IO技术
重叠IO[overlapped I/O]:Win32的一项技术,你可以要求操作系统为你传送数据,并且在传送完毕时通知你。这也就是[完成]的含义。这项技术使你的程序在I/O进行过程中仍然能够继续处理事务。<em>完成端口</em>(IOCP):不是我们在TCP/IP中所提到的端口,可以说是完全没有关系。IOCP只不过是用来进行读写操作,和文件I/O倒是有些类似。既然是一个读写设备,我们所能要求它的只是在处理读与写上的高
Windows高性能并发IOCP
最完整的IOCP编程<em>例子</em>,从控件封装、通讯协议、上传下载、SQL查询到日志查看,都有完整实现。程序架构实现了:可纵向调整程序性能、控制协议开关、日志配置等一序列实现。
IOCP多工作者模型
我看网上很多有关IOCP的封装,基本都是和<> (第二版) 王艳平的IOCP封装类似的,我查看了源码觉得应该还是比较靠谱的,自己也封装了一套,发现开了多个(两个)工
轻量、稳定、高效的IOCP模型框架,支持速度统计与限速、自动拆包封包,可直接用于生产环境。
先贴出头文件。 #ifndef NetNoteInterface_h__ #define NetNoteInterface_h__ #pragma once #pragma pack(1) struc
完成端口(IOCP)--实例
转载地址: https://blog.csdn.net/wenhong609/article/details/8834534?utm_source=copy   红色字体我遇到的坑     // CP.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &amp;...
完成端口IOCP详解
原文地址:https://www.cnblogs.com/talenth/p/7068392.html 修改自: http://blog.csdn.net/piggyxp/article/details/6922277 ps: 原作者很厉害了, 把一个<em>iocp</em>模型讲解的这么形象,不过在实践过程中发现一些细节说得有问题, 在文中标红指出, 另外删掉了原文中一些我认为有些多余的话        ...
完成端口IOCP详解
本系列里<em>完成端口</em>的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚…..         这篇文档我非常详细并且图文并茂的<em>介绍</em>了关于网络编程模型中<em>完成端口</em>的方方面面的信息,从API的用法到使用的步骤,从<em>完成端口</em>的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会<em>完成端口</em>的用法
IOCP项目源码
这份代码是我博客里的文章《<em>完成端口</em>详解 - 手把手教你玩转网络编程系列之三》的配套代码 里面的代码包括VC++2008/VC++2010编写的<em>完成端口</em>服务器端的代码,还包括一个对服务器端进行压力测试的
IOCP客户端ConnectEx,GetQueuedCompletionStatus返回52错误
一个IOCP的程序,因为有转发功能,所以IOCP的服务端和客户端封装在同一个程序模块中,做为客户端,采用ConnectEx来做连接。做压力测试,上一级客户端<em>并发</em>2000个连接到这个IOCP程序,IOC
请教关于IOCP的几个问题
大家好,目前关于IOCP的基本原理及使用方式已经了解,现在存在几个疑问: 1、发送数据的问题:发送的数据是其中一个客户端A发过来,10个字节左右,这时候要转发给其他目标客户端(数量不定)3个字节的数据
IOCP经典讲解
该资源是对<em>socket</em>编程中的<em>完成端口</em>模型的一些概述和讲解,对于构建<em>高性能</em>服务器具有一定的启发作用。
IOCP模型浅析
什么是IOCPIOCP即是<em>完成端口</em>,<em>完成端口</em>会充分利用Windows内核来进行I/O的调度,是用于C/S通信模式中性能最好的网络通信模型,当初微软提出<em>完成端口</em>的初衷是为了解决“one thread per client ”的缺点, 它充分利用内核对象的调度,只使用少量的几个线程来处理和客户端的所有通信,消除了无谓的线程上下文切换,最大限度的提高了网络通信的性能,可以说在Windows中没有比它更好...
是谁神化了IOCP——完成端口通讯服务器(IOCP Socket Server)设计(一)
<em>完成端口</em>通讯服务器(IOCP Socket Server)设计 (一)是谁神化了IOCP Copyright © 2009 代码客(卢益贵)版权所有 QQ:48092788 源码博客:http://b
IOCP关闭socket问题啊,怎么这么麻烦啊!!
我有时调用close<em>socket</em>后会进到 GetQueuedCompletionState中,但有时不进到! 没办法我就用了个vector把所有的客户端<em>socket</em>收集起来,服务端想断开那个链接我就在
IOCP中的WSARecv()失败,WSAGetLastError()返回值为6.
IOCP句柄成功创建了, Server与Client的Socket连通了,并且能够使用send()发送数据到客户端来正常通讯。 IOCP线程也创建成功了,能从调试那里看见八个线程。 只是,在刚刚接收到
IOCP基本概念
IOCP全称I/O Completion Port,中文译为I/O<em>完成端口</em>。IOCP是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。与使用select()或是其它异步方法不同的是,一个套接字[<em>socket</em>]与一个<em>完成端口</em>关联了起来,然后就可继续进行正常的Winsock操作了。然而,当一个事件发生的时候,此<em>完成端口</em>就将被操作系统加入一个队列中。然后应用程序可以对核心层进行查询以得到
IOCP压力测试,出错处理,求解
-
websocket+iocp的实现
 web<em>socket</em> 实在tcp的基础上增加了二次握手,所有其实web<em>socket</em>和之前的<em>iocp</em>流程其实是一样的1.CSingleton.h#ifndef CSINGLETON_H #define CSINGLETON_H #pragma once //互斥访问锁 class CThreadLockCs { public: //此函数初始化一个临界区对象。 CThreadLockCs()...
IOCP使用小结
很多知识,只有自己亲自实践了才知道坑在哪里。 <em>socket</em>是内核对象句柄,每次对<em>socket</em>执行操作,需要用户对象到内核对象的转换,执行完成返回结果,需要内核对象到用户对象的转换。 IOCP的中文名称是<em>完成端口</em>,目前是Windows下最高效的网络模型。特点:半异步,非阻塞。(我理解的完全异步是回调式,不需要人工参与,但是IOCP的异步需要轮询)。         其他模型的缺点: 1)se
C#Socket编程详解(三)Socket编程
三、Socket编程1、UDP通信1.1采用Socket实现UDP1.1.1简介Socket实现UDP的基本步骤如下:(1)创建一个Socket对象Socket mySocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp);AddressFamily 寻址类型AddressFamily.In...
iocp
http://laokaddk.blog.51cto.com/blog/368606/610780 IOCP相关的一些总结 1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。 网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。 情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/I
采用完成端口(IOCP)实现高性能网络服务器(Windows c++版)
前言  TCP\IP已成为业界通讯标准。现在越来越多的程序需要联网。网络系统分为服务端和客户端,也就是c\s模式(client \ server)。client一般有一个或少数几个连接;server则需要处理大量连接。大部分情况下,只有服务端才特别考虑性能问题。本文主要<em>介绍</em>服务端处理方法,当然也可以用于客户端。   我也发表过c#版网络库。其实,我最早是从事c++开发,多年前就实现了对<em>完成端口</em>...
Socket通信-accept+多线程
偶然的机会,重新写了一下windows下<em>socket</em>通信的比较基础的代码,太久没有接触<em>socket</em>以及多线程,查了不少博客,但是发现大部分内容比较陈旧,所以决定写一篇博客,顺便自己总结一下。 内容简介 网络通信基本函数<em>介绍</em> C++11多线程简介 <em>socket</em>通信tcp版本 <em>socket</em>通信udp版本 网络通信基本函数<em>介绍</em>tcp连接模式下客户端流程1.创建<em>socket</em>(套接字) <em>socket</em>(
VC++ MFC socket编程
<em>socket</em>编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。由于C++语言对底层操作的优越性,许多文章都曾经<em>介绍</em>过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用他来实现Socket编程,是非常方便的。 --
TCP socket select用法分析
本文主要记录了select一些用法和自己写的一个用select的服务器端<em>例子</em>。首先,我们来看看select函数的定义和参数的含义:int select( int nfds, fd_set FAR* readfds, fd_set * writefds, fd_set * exceptfds, const str
一个多线程socket的问题
这个是我的answer线程,我希望可以当接收到“shutdown”的时候,可以让主函数中的listen的while(1)终止 并且 close<em>socket</em>( AcceptSocket); WSACle
(VC代码) 端口复用的思路与实现
端口复用在黑客后门程序中十分重要,当你侵入一台服务器时,这台服务器如果安装了防火墙,则使用一般的后门程序时,后门程序使用的是防火墙禁止的端口,则可以通过复用防火墙允许的端口来与后门程序进行数据交流,比如一个服务器有WEB服务,我们可以通过复用80端口. 原理图如下:         复制端口的原理是用在服务器安装一个中间程序,在客户端发送数据给端口前劫获
VC++写的socket通信程序发送的信息用des加密然后在收到信息后解密
我是菜鸟额。]有一个简单的VC++写的<em>socket</em>通信程序,如何将发送的信息用des加密然后在收到信息后解密。求大神给个说明和des代码。 scoket服务器和客户端代码如下,如何加入des模块: 服
c++ vc socket 长连接问题,cmpp网关的,同时收发丢包问题?
现在做一个通信程序(移动cmpp 通信网关),是<em>socket</em>长连接,同时开启收发线程的话,接收线程会丢包(估计是长连接,和发送线程使用同一个<em>socket</em>),如果关闭发送线程,那么接收程序性能会很好,都
socket 和 ACE 到底外面哪个用的多?
上次我在写一个程序里面涉及到网络方面,我用<em>socket</em>,然后他十分鄙视的说:现在外面谁还用<em>socket</em>啊,都用ACE了(原话,一个字都没有改)。 然后我又和我们班一个搞技术比较可以的一个学生谈,他说:
socket最基础的例子——别看!
一个tcp select的<em>socket</em> server,注意里面对select的时候和对信号的处理: #include &amp;amp;lt;stdio.h&amp;amp;gt; #include &amp;amp;lt;netinet/in.h&amp;amp;gt; // for sockaddr_in #include &amp;amp;lt;sys/types.h&amp;amp;gt; // for <em>socket</em> #include &amp;amp;lt;sys/<em>socket</em>.
关于socket中的recv()疑问
在<em>socket</em>通讯中,我设定了服务端一直发送‘OK’,在客户端中data = tcpCliSock.recv(bufsize),然而程序就卡住了,上网查了查,应该是recv()进入阻塞了。上网又查了查
全局CSocket与堆中CSocket的区别.有谁能解答啊?
-
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/e7284ef16bcec3c70a46e05e.html select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:        #include #include
socket编程(2)—— 一对多通信
1 一对多模型,TCP的编程步骤服务端: 1、<em>socket</em>()获得一个sockfd。注意第二个参数必须SOCK_STREAM. 2、准备通信地址(必须服务器的) 3、bind()绑定。(开放了端口,允许客户端连接) 4、监听客户端 listen()函数 5、等待客户端的连接 accept(),返回用于交互的<em>socket</em>描述符 6、使用第5步返回sockt描述符,进行读写通信。 7、关闭
请教select函数FD_ISSET()函数的作用?
以下程序段第5行的select函数和FD_ISSET()函数不太懂,能否解释一下,谢谢? FD_ZERO(&readfd); FD_SET(sockfd,&readfd); while(1){ sin
socket通讯编程有没有好用的第三方类?
用VC串口通讯有第三方的类,比如CSerialPort类和CnComm类,这样实现串口编程就不用windows api了 那<em>socket</em>有没有好用的第三方类啊? 我看很多讲VC的书里进行<em>socket</em>编
socket接收缓冲区设置为2M,那么是不是对端发2M数据,就满了(通讯的高手来,坐等结贴)
如果接收端的<em>socket</em>接收缓冲区设置为2M, 并且一直不从缓冲区把数据"拿走(就是recv)",是不是发送端发送2M数据后, 接端的接收收缓冲就区满了?,发送端就发不了数据了?个人认为是这样的,但是
一个简单的Windows Socket可复用框架
说起网络编程,无非是建立连接,发送数据,接收数据,关闭连接。曾经学习网络编程的时候用Java写了一些小的聊天程序,Java对网络接口函数的封装还是很简单实用的,但是在Windows下网络编程使用的Socket就显得稍微有点繁琐。这里<em>介绍</em>一个自己封装的一个简单的基于Windows Socket的一个框架代码,主要目的是为了方便使用Windows Socket进行编程时的代码复用,闲话少说,上代码
理解I/O Completion Port
理解I/O Completion Port - -                                        function anonymous(){function anonymous(){{if((document.getElementById(diary300934)).styl
IOCP注意事项
1- 不要为每个小数据包发送一个IOCP请求,这样很容易耗尽IOCP的内部队列.....从而产生10055错误.2- 不要试图在发送出IOCP请求之后,收到完成通知之前修改请求中使用的数据缓冲的内容,因为在这段时间,系统可能会来读取这些缓冲. 3- 为了避免内存拷贝,可以尝试关闭SOCKET的发送和接收缓冲区,不过代价是,你需要更多的接收请求POST到一个数据流量比较大的SOCKET,从而保证系统
完成端口IOCP实现高并发服务器——一篇非常好的学习资源
IOCP 实现高<em>并发</em>服务器demo+详解 转载自https://www.cnblogs.com/talenth/p/7068392.html
NamedPipe,利用IOCP实现命名管道异步通信
微软提供了利用回调函数来实现有名管道的示例:Named Pipe Server Using Completion Routines. 该示例使用了ReadFileEx和WriteFileEx函数来进行有名管道的异步读写操作。我们在该示例的基础上进行改写来实现通过IOCP来进行异步读写。主要改动在哪下几个方面: 1.删去 CreateEvent操作,改为CreateIoCompletion
VC++版稳定高效tcp/udp iocp服务器及客户端
用VC++编写的稳定高效tcp/udp <em>iocp</em>服务器及客户端。用VC++编写的稳定高效tcp/udp <em>iocp</em>服务器及客户端。
IOCP实现的任务队列
unit IOCPQueue;interfaceuses windows, classes;type TOnQueueProc = procedure(sender: tobject; ParamA, ParamB: integer) of object; TIOCPQueue = class private FCompletionPort: THandle; FOnQueueP...
c++版IOCP完成端口源码
用C++实现的,能高<em>并发</em>(可自己设定)和高连接数(20000以上)的TCP与UDP两种协议IOCP封装源码。有效解决了掉线、死机、超时的基本问题。
完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三    <em>完成端口</em>(Completion Port)详解                                                              ----- By PiggyXP(小猪) 前 言         本系列里<em>完成端口</em>的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿
arm7 lpc2131在protues 调试串口程序下载
里面有可用的protues hex文件,c源程序 相关下载链接:[url=//download.csdn.net/download/xianyunweicao/4491888?utm_source=bbsseo]//download.csdn.net/download/xianyunweicao/4491888?utm_source=bbsseo[/url]
自动关机软件下载
只需要打开软件 点击关机 就可以自动关机 很简单 相关下载链接:[url=//download.csdn.net/download/u010185103/5309483?utm_source=bbsseo]//download.csdn.net/download/u010185103/5309483?utm_source=bbsseo[/url]
自动下载网上图片或者种子下载
这个是闲暇之余瞎做的,一个可以自动下载网上图片和种子的小程序,如果有兴趣可以下载下去研究一下,就只是一个思路 相关下载链接:[url=//download.csdn.net/download/dingzq/8277571?utm_source=bbsseo]//download.csdn.net/download/dingzq/8277571?utm_source=bbsseo[/url]
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法
我们是很有底线的