到底完成端口之完成key指向的数据结构是不是需要互斥访问?代码见内

csoapy 2006-09-01 05:55:16

for this struct :
// the completion key point to it:
typedef struct _OVERLAPPEDPLUS
{
OVERLAPPED ol;
SOCKET s, sclient;
int OpCode;
char recvBuf[512],sendBuf[512];
DWORD dwBytes, dwFlags;
// other useful information
}OVERLAPPEDPLUS;

the mem of recvBuf[]and sendBuf[] should be protected when i use IOCP?

thanks.
...全文
228 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mme 2006-09-04
  • 打赏
  • 举报
回复
找找别人的例子看看吧,这样的理解是不行的,要多看msdn和别人的心得,一句话,不用你自己考虑同步的问题
csoapy 2006-09-02
  • 打赏
  • 举报
回复
只在WSARecv的时候才投递这个OV,
------------------------------------
是在WSASend的时候将lpOVERLAPPED指针置为NULL呢?还是扩展OVERLAPPED结构时候,像《win32多线程程序设计》里面那样用两个OVERLAPPED结构(一个in,一个out,out的hEvent|=1)?
peibosys 2006-09-02
  • 打赏
  • 举报
回复
建议你在OV扩展结构尽量简单化,既然要用IOCP,说明连接数量大建议你只保
留Rcvbuf[]就行了,只在WSARecv的时候才投递这个OV,这样既好判断收发
if(lpkey == lpov)//响应接收
{

}
else//响应发送或者其他
{

}
如果你的lpov是动态分配的,delete lpov的时候得要考虑下线程同步的问题了
csoapy 2006-09-02
  • 打赏
  • 举报
回复
互斥啥啊,估计你还没有弄明白这个OVERLAPPED到底是怎么回事

------------------------------------
那么就是说,IOCP的工作线程,不论有多少个,IOCP机制就用我的OVERLAPPED中的hEvent来同步操作我的缓冲区?以防止下面的情形:
  当某一线程正在处理一个客户端送来的数据时,完成端口会把同一客户端紧接着送来的数据,提交给另一个线程。这个时候就要同步读写缓冲区了不是?但不是我自己同步,这几个工作线程都用一个hEvent来同步。
  是这样吗?
mme 2006-09-01
  • 打赏
  • 举报
回复
互斥啥啊,估计你还没有弄明白这个OVERLAPPED到底是怎么回事
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧