某公司顶级技术总监 要求面试者半小时内分析:下面重叠通讯对吗? 本帖最后由 VisualEleven 于 2011-09-02 11:26:02 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 memset(&wsaData->buffer, 0, sizeof(WSAOVERLAPPED));LX继续 本帖最后由 VisualEleven 于 2011-09-02 11:25:50 编辑 &static_cast<WSAOVERLAPPED&>(*wsaData),什么语法,我菜,谁解析下应该有个OVERLAPPED成员(假设为Overlapped)吧,那直接用&wsaData->Overlapped或者reinterpret_cast<WSAOVERLAPPED*>(&wsaData) 写的代码很烂。 说实话。看着都难受。找bug更难受。 WSARecv(wsaData->sClient, &wsaData->buffer, 1, &wsaData->NumberOfBytesSRd, &wsaData->Flags, &static_cast<WSAOVERLAPPED&>(*wsaData), RecvCompletionRoutine)红色的地方如果使用全局变量好像会出错,前些天做过一个服务器项目,就出现了这种问题 这段代码效率太低了.要保证不出错,wsaData->pCommObject->RecvCallBackFun必须是阻塞的.如果该回调函数是阻塞的,则根本不能发挥IOCP的优势.PS,根据函数名和原型判断是使用的IOCP模型. 写代码都不用判断一下OVERLAPPED是否有效的吗? 是我搞错了,本来memset(&wsaData->buffer, 0, sizeof(wsaData->buffer));一来是编辑时搞错了,二是这个memset没必要 再谈关于CRichEditCtrl的行高 如何实现左键开始绘制矩形,矩形随着鼠标移动而成虚框,最后右键确定? RealPlayer G2 Control的问题? 如何响应含有ActiveX控件的窗口消息 我发现当我线程已经退出后,我的pThread->m_hThread就破坏掉了,我再调用WaitForSingleObject就会出错? 如何在两个对话框之间传递数据?如何把非模式窗口变为模式窗口?在线等 面向对象的简单问题 帮帮忙谁能提供一些关于windows消息机制,和跟消息有关的API的资料。提供者给分。 那里有加密算法的资料? 怎么样才能用vc编出可以在dos下运行的程序!! vpn拨号? richedit 中的回车换行
应该有个OVERLAPPED成员(假设为Overlapped)吧,那直接用&wsaData->Overlapped
或者reinterpret_cast<WSAOVERLAPPED*>(&wsaData)
&static_cast<WSAOVERLAPPED&>(*wsaData), RecvCompletionRoutine)红色的地方如果使用全局变量好像会出错,前些天做过一个服务器项目,就出现了这种问题
要保证不出错,wsaData->pCommObject->RecvCallBackFun必须是阻塞的.如果该回调函数是阻塞的,则根本不能发挥IOCP的优势.
PS,根据函数名和原型判断是使用的IOCP模型.
是我搞错了,本来memset(&wsaData->buffer, 0, sizeof(wsaData->buffer));
一来是编辑时搞错了,二是这个memset没必要