关于网上很多IOCP服务器实例的一段代码,不知道写的是什么意思,希望大佬们指点迷津!

图片说明
就是这段代码,不是很明白这是在进行什么操作?有什么作用? 希望大佬们指点迷津!非常感谢!

2个回答

第一句是将PioData->overlapped内存全设置为0,2.3:是将要发送和接收的长度设置为0,可能 是之后你发送数据或接收数据之后 会重新给他们赋上值,还有你之后 判断 若他们为0 说明你的pIoData即没发数据也没接收数据
4.是将databuff的长度设置为DataBuffSize 我想这个DataBuffSize应该是pIoData->buffer的长度,5就是把pIoData->buffer的地址赋值给pIoData->Databuff.buf,到目前 它们俩指向的地址和内容是一样的了

结构体初始化~~~~~~~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# IOCP模式下服务器主动发送消息

http://blog.csdn.net/zhujunxxxxx/article/details/43573879 服务器端代码是参考这篇帖子的。 我想要实现,按下按钮,然后往所有当前连接上的客户端发送数据。 但是从SocketAsyncEventArgsPool 对象池里pop一个SocketAsyncEventArgs e,然后发送数据。 发送函数里的Socket s = e.AcceptSocket会出现未实例化的错误。 发送函数如下 public void Send(SocketAsyncEventArgs e, byte[] data) { if (e.SocketError == SocketError.Success) { Socket s = e.AcceptSocket; if (s.Connected) { Array.Copy(data, 0, e.Buffer, 0, data.Length); if (!s.SendAsync(e)) { ProcessSend(e); } else { CloseClientSocket(e); } } } } 这原因是什么你

实现iocp高并发通信系统

现在需要做一个高并发多线程通信系统,打算用Java写IOCP服务端,实现数据的收发,以前只写过基于socket的 i/o通信模型,iocp 的没写过,希望打大家分享下用Java实现iocp的demo,谢谢

iocp区分客户端任务方法的问题

请教一下各位,我初学iocp模型,工作线程通常负责发送接收的操作, 工作线程是怎么区分客户端任务种类的, 我设想的是有个数组储存每个客户端信息, 客户端开始的时候会告知服务器客户端的任务,并把任务信息也保存再信息数组里面, 等到以后收到客户端请求以后去这个数组里面去寻找客户端信息,然后确定客户端任务, 但是这样操作有个问题就是工作线程每次收到客户端信息都会去数组里面查询一遍客户信息,当数组特别大的时候每次都去这个大数组里面查询信息效率就很低,请问各位有什么别的方便快捷的方法来确定客户端任务没,非常感谢

java中怎么实现iocp高并发通信

现在需要做一个高并发多线程通信系统,打算用Java写IOCP服务端,实现数据的收发,以前只写过基于socket的 i/o通信模型,iocp 的没写过,希望打大家分享下用Java实现iocp的demo,谢谢

iocp网络编程问题,流程不太清楚

请教一下各位,我看那个iocp有点看不懂,整理几个问题,麻烦知道的高手指导一下,谢谢。 1:工作线程在GetQueuedCompletionStatus得到事件了以后,事件的种类比如说发送或接收是在哪里设定的,很困惑。 2:如果工作线程想要接收数据他是调用WSARecv函数接收呢还是iocp会自己去接收然后接收到了再通知工作线程? 3:在有多个客户端的情况下,工作线程是怎么区分每个不同的客户端的工作的,比如说有些要上传,有些要下载,难道是每次从GetQueuedCompletionStatus获取数据以后,这样的每个数据里面还有工作指令来表示他是上传或是下载? 4:投递请求是什么意思,是指对iocp调用非阻塞函数调用了马上返回剩下的工作交给iocp去做是吗?

IOCP压力测试,出错处理,求解

IOCP压力测试 客户端并发1000个连接,发送数据给服务端,服务端接收到数据后,又把数据发回去客户端,客户端收到数据后又发回给服务端,就这样,大家的网卡都满载了,占用99% 一会就有很多Socket收到以下通知: GetQueuedCompletionStatus返回Flase lpNumberOfBytesTransferred=0 lpCompletionKey不为空 lpOverlapped不为空 WSAGetLastError=ERROR_NETNAME_DELETED 但WSAGetOverlappedResult返回True 这是个WSARecv操作 这种情况是正常的还是不正常? 这种情况要怎么做?是要做断开连接处理吗?

使用IOCP同时发送数据与接收数据时,出现bug,求解释,先谢谢啦!

描述:我用IOCP做了个客户端,发送数据给服务端完全没问题,就是当服务端返回我发送的数据(服务端不做任何处理),我的客户端接收就出现了bug,经常就是接收到几十到几百个完整包(客户端拼包自己搞定了)就崩溃了,我是从客户端向服务端连续发送1000个512KB的数据。后来我加了一句代码问题基本没出现过,就是加了个Sleep(1),谁能解释下是为什么吗?很急,这个问题困扰几天了。(个人猜想是pBuffer指针可能被覆盖了的原因) Sleep(1); pBuffer = CONTAINING_RECORD(pOverlapped, CIOCPBuffer, ol);

IOCP:GetQueuedCompletionStatus无法获取socket的值

网上下的IOCP示例代码,调试环境换成了x64。 发现在执行 ``` GetQueuedCompletionStatus(CompletionPort, &BytesTransferred, (PULONG_PTR)&PerHandleData, (LPOVERLAPPED*)&IpOverlapped, INFINITE) ``` 函数后,PerHandleData的socket为空,但是换成win32又能获取到socket的值。 PerHandleData的结构为: ``` typedef struct { SOCKET socket; SOCKADDR_STORAGE ClientAddr; }PER_HANDLE_DATA, *LPPER_HANDLE_DATA; ``` 不解, 不知道问题出在哪里。

IOCP在x64环境下报错:内存访问冲突

一个IOCP的例子程序,WIN32平台能够正常运行,但是在配置管理器里把平台从WIN32改成x64之后,就会在 ``` WSARecv(PerHandleData->socket, &(PerIoData->databuff), 1, &RecvBytes, &Flags, &(PerIoData->overlapped), NULL); ``` 语句处报错。 但是我同时还要连接mysql数据库,当时安装的是x64的,所以平台又必须是x64的。 网上搜过一篇博文,里面有写说IOCP要注意32位和64位的内存容错。但是没有懂要怎么解决。 博文地址:[IOCP详解](http://blog.csdn.net/gzfstudy/article/details/8146896 "") 求助!

为什么windows下服务器达到16000左右并发时就崩溃了?

先创建一个简单的服务器和一个简单的客户端; 服务器死循环accept,客户端死循环connect(只连接但不发送信息), 当数量达到16000左右时,所有连接就断开了。 是因为windows对socket资源做了一些限制吗? 如何解除这些限制? --- 最近在做IOCP模型的服务器,但是写完出来测试发现, 达到16000左右就d掉了,然后才写了简单的服务器客户端来测试。 发现和IOCP模型并没有关系,代码应该没有写错,找不到原因。

IOCP,求大神帮忙涨姿势

之前服务端TCP用CAsyncSocket来实现的,完全跟不上速度,导致主界面卡死现象,现在想用IOCP来重写,但是之前没接触过,网上找了一些资料,整的迷迷糊糊,有大神有简单的例子吗?都是TCP短连接,有必要搞Socket池吗?

服务端 用WSASEND发送数据 客户端RECV成功了 为什么服务端还没有收到IOCP完成通知

# 服务端 用WSASEND发送数据 客户端RECV成功了 为什么服务端还没有收到IOCP完成通知 只有等客户端closesocket 服务端才完全收到所有WSASEND通知 真奇怪

IOCP SocketAsyncEventArgs 服务端接收不到客户端的UserToken

用SocketAsyncEventArgs 客户端通过UserToken 传输用户名和密码,但是服务端收不到,是怎么回事?

IOCP WSASend内存锁死的问题

WSASend与WSARecv都可能造成内存锁死,网上看到对于接收可以投递0字节请求来解决,那么对于WSASend应该如何避免内存的锁死。 而且我需要在一个连接上同时投递多个WSASend--这种方式是必须的,不能使用投递队列。

windows平台下C++服务器多线程问题

最近在Windows平台下 用sokcet 写了一个TCP通信服务器 用的模型IOCP模型写到 问题是这样 我开了4个线程 比如: A B C D 4个线程 A线程负责接收客户端消息 接收到消息之后压入一个队列当中 而队列当中一旦消息 A线程就通知 B C D 3个线程开始处理消息 如果队列中没有消息 B C D 3个线程 就会阻塞 直到队列当中有消息才继续执行 请问该怎么做呢????

iocp接收数据以后从哪里得到接收了多少个字节数据

如题,请问iocp通过GetQueuedCompletionStatus收到接收数据完成以后是从哪里知道接收了多少字节数据的,谢谢

windows下IOCP编程的问题

描述在下面的文章中: http://blog.csdn.net/u010826760/article/details/50822170 没分,谢谢各位。。

IOCP参考资料入门资料推荐

最近老大布置了任务,学习IOCP,给了我一个源代码,包括客户端和服务端,但是代码看不懂啊,没有注释可看,有没有什么关于IOCP入门的资料书籍什么的推荐啊~谢谢了!

echo测试服务器和客户端,大量连接失败,关闭时又会出现僵尸established连接

写了个测试客户端和服务器,服务器使用IOCP,客户端使用select。客户端开始时指定开启512个socket连接服务器。连接失败则重新连接,连接成功,则发送数据到服务器。服务器收到数据就回复同样的字符给客户端。 但是出现以下情况: 1.客户端开启512个连接,只有一部分连接的上。错误的提示是10060,连接超时,服务器accept的错误是64(网络明不再可用)。 感觉是不是,服务器连接上了,没来及处理,导致客户端删除,服务器处理时,又晚了。有没方法解决?一开始猜测是不是select后,在exceptfdset中可以不用理他,继续投递,测试后感觉又不是这个样子。因为,我这样测试:把select等待时间弄成0,0即刻返回,但是accept也有既不是成功也不是except中,说明不出错是会去等待的,不是非成功就失败的。但这种TimeOut是正常的吗?可以把这个TimeOut时间调长点吗? 2.客户端关闭后,他的一部分socket关不掉,服务器上netstat查看发现有部分established连接依旧在。 是不是客户端某些连接关闭时发送的FIN丢失或未发送?我认为如果对这种对端实际关闭的established连接,进行send,投递后,会返回错误,因为我认为send后会得到回馈,就如syn-ack一样。但是测试后发现,send居然还是可以成功,搜索网络后,得到的结论是,send,仅仅是发送到系统缓存,成功只是说明发送到缓冲区了,对端收得到否,得不到回馈。不知这个结论是不是正确的?这种僵尸established连接是不是有可能在对端不正常关闭(拔网线等极端状态)时存在?目前我使用开启keep-alive选项解决。这种僵尸established连接,程序会稍后recv得到通知而断开。 最后,经过分析和实验,我感觉,以上的问题是网络不可阻的问题,最后我只是在程序中为每个连接开启了keep alive的选项。

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector<list<int> >; //C++11之前 vector<list<int>>; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐