xiayangchun 发表于 2021-12-22 21:36:47

TCP处理数据协议指令遇到需要处理较长时间的指令问题

大家号,最近遇到一个问题不知该如何处理,想请各位经验丰富的大师们提供一下思路
他是控制板作为客户端,定期与服务器发送心跳包(5S一次)或者事件包,然后服务器会应答,确认已经接收到
同时服务器也会在需要的时候发送控制命令,然后客户端也要应答服务器
我开了2个任务,1个任务用于定时上传心跳包给服务器(任务A),并设置超时等待时间,一个任务用于接收服务器下发的指令(任务B),当任务B接收到服务器数据后,我就直接处理数据,如果是心跳包应答那就结束A的等待,准备就绪下一次的心跳包数据,如果是下发指令,那就处理指令,处理完在应答数据给服务器,这种正常情况下没什么问题,但我有几条服务器指令处理需要较长时间,大概可能需要1分钟多,例如格式化设备指令,
当我收到格式化指令后,我就在任务B中执行格式化操作,而任务A会每5S发送心跳包给服务器,服务器每5S也就会应答数据,这个应答的数据因为正在执行格式化操作,无法处理该指令,导致会有很多条心跳包应答指令无法处理,类似这种问题,大家给个思路,几步影响数据应答,也不影响指令处理的方法,

eric2013 发表于 2021-12-23 10:04:07

没听懂,你的任务A不是心跳包么,怎么和任务B的功能关联起来了:“”“任务A会每5S发送心跳包给服务器,服务器每5S也就会应答数据,这个应答的数据因为正在执行格式化操作,无法处理该指令”

xhc281358765 发表于 2021-12-24 09:47:44

建议把1分钟任务分解
页: [1]
查看完整版本: TCP处理数据协议指令遇到需要处理较长时间的指令问题