救救我吧,windows下proactor的问题??????
采用proactor模型创建与多个设备(某硬件)的网络连接,然后根据设备通信协议来查询设备的运行状态参数,可是由于设备的通信协议不规范,没有消息头来描述后继应该接收的数据格式,查询设备运行参数的交互方式采用应答方式,我发送一条查询指令,设备回复数据,但是有时设备忙的时候会回复错误标识,此时我想复位接收缓冲区,重新查询接收正确的运行数据,不知道proactor模型支持吗?改如何处理,还望各位大侠鼎力帮忙!谢谢! 复位接收缓冲区 是什么意思? 复位接收缓冲区 是什么意思?
freeeyes 发表于 2011-7-15 09:43 http://www.acejoy.com/bbs/images/common/back.gif
意思是错误标识被插入到接收缓冲区中,将无法正确解析数据,此时我又不想断开socket重新创建连接,是否可以重新提交一次read请求来重新查询数据,而抛弃之前已经被截断的数据? 重新读也得对方知道出了问题,有数据发过来才行啊。这逻辑貌似有点不足。再者,判断出错,可以用分块校验码,每次都判断影响效率。 楼主貌似想复杂了,你接受的数据就是一个数据流,你只需要在数据流中找到你认为是正确的应答数据就好了,如果数据流中的数据都已经读完了,但是还是没有发现你要的应答数据,那就应该再次发送命令,然后等待收到新的数据,我的理解这里应该是和数据处理相关而和网络无关。
页:
[1]