piaoliushi 发表于 2011-7-14 11:40:54

救救我吧,windows下proactor的问题??????

采用proactor模型创建与多个设备(某硬件)的网络连接,然后根据设备通信协议来查询设备的运行状态参数,可是由于设备的通信协议不规范,没有消息头来描述后继应该接收的数据格式,查询设备运行参数的交互方式采用应答方式,我发送一条查询指令,设备回复数据,但是有时设备忙的时候会回复错误标识,此时我想复位接收缓冲区,重新查询接收正确的运行数据,不知道proactor模型支持吗?
改如何处理,还望各位大侠鼎力帮忙!谢谢!

freeeyes 发表于 2011-7-15 09:43:31

复位接收缓冲区 是什么意思?

piaoliushi 发表于 2011-7-18 13:32:51

复位接收缓冲区 是什么意思?
freeeyes 发表于 2011-7-15 09:43 http://www.acejoy.com/bbs/images/common/back.gif

意思是错误标识被插入到接收缓冲区中,将无法正确解析数据,此时我又不想断开socket重新创建连接,是否可以重新提交一次read请求来重新查询数据,而抛弃之前已经被截断的数据?

winston 发表于 2011-7-18 19:15:53

重新读也得对方知道出了问题,有数据发过来才行啊。这逻辑貌似有点不足。再者,判断出错,可以用分块校验码,每次都判断影响效率。

yoogera 发表于 2011-7-19 21:57:55

楼主貌似想复杂了,你接受的数据就是一个数据流,你只需要在数据流中找到你认为是正确的应答数据就好了,如果数据流中的数据都已经读完了,但是还是没有发现你要的应答数据,那就应该再次发送命令,然后等待收到新的数据,我的理解这里应该是和数据处理相关而和网络无关。
页: [1]
查看完整版本: 救救我吧,windows下proactor的问题??????