1.一种数据发送方法,其特征在于,所述方法包括:
在基于FiFo命名管道进行全双工通信的过程中,当使用远程命名管道发送数据时,调用FiFo消息的静态分配方法创建FiFo消息数据结构;
在所述FiFo消息的规模不大于第一预置数值的条件下,使用所述FiFo消息包装数据块,所述数据块中被所述FiFo消息包装的数据块称为有效负载,所述有效负载的规模小于或等于所述数据块的规模;
根据所述FiFo消息的FiFo消息数据结构判断所述数据块是否已被全部包装完毕;
若所述数据块已被全部包装完毕,将所述FiFo消息的分段标识设置为0,表示所述FiFo消息为包装所述数据块的最后一个FiFo消息,并调用写方法将用于包装所述数据块的全部FiFo消息写入所述远程命名管道,以使得接收端从本地命名管道获取数据后,对获取的所述数据进行处理后得到所述数据块;
若所述数据块未被全部包装完毕,将所述分段标识设置为1,表示所述FiFo消息之后还有用于包装所述数据块的后续FiFo消息,并将剩余的所述数据块写入所述后续FiFo消息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述FiFo消息数据结构判断所述数据块是否已被全部包装完毕,包括:将所述数据块的规模减去偏移量的差值设置为所述FiFo消息数据结构的参数,所述偏移量表示在使用所述FiFo消息包装所述数据块之前,所述数据块已被包装在先前FiFo消息的总规模,所述偏移量的初始值为0;
判断所述有效负载的规模是否等于所述差值;
若所述FiFo消息的有效负载的规模等于所述差值,确定所述数据块已被全部包装完毕;
若所述FiFo消息的有效负载的规模不等于所述差值,确定所述数据块未被全部包装完毕。
3.一种数据接收方法,其特征在于,所述方法包括:
在基于FiFo命名管道进行全双工通信的过程中,当使用本地命名管道接收数据时,调用读方法从所述本地命名管道中读取数据,所述从所述本地命名管道中读取的数据不大于第二预置数值;
将从所述本地命名管道中读取的数据保存到序列化容器中;
将保存到所述序列化容器中的数据转换为转换FiFo消息;
判断所述转换FiFo消息是否为完整的FiFo消息,所述FiFo消息用于包装数据块,所述FiFo消息包括有效负载,所述有效负载为,在所述FiFo消息的规模不大于第一预置数值的条件下,所述数据块中被所述FiFo消息包装的数据块,所述有效负载的规模小于或等于所述数据块的规模;
若所述转换FiFo消息为所述完整的FiFo消息,从所述转换FiFo消息中获取所述有效负载,并在所述序列化容器中删除用于生成所述转换FiFo消息的数据;
若所述转换FiFo消息不是所述完整的FiFo消息,继续执行所述调用读方法从所述本地命名管道中读取数据;
将与所述数据块对应的全部有效负载进行拼接得到所述数据块。
4.根据权利要求3所述的方法,所述判断所述转换FiFo消息是否为完整的FiFo消息,包括:调用获取规模方法获取保存在所述序列化容器中的用于生成所述转换FiFo消息的数据的规模;
判断所述用于生成所述转换FiFo消息的数据的规模是否大于或等于所述完整的FiFo消息的总规模,所述完整的FiFo消息的总规模从所述转换FiFo消息中得到;
若所述用于生成所述转换FiFo消息的数据的规模大于或等于所述完整的FiFo消息的总规模,则确定所述转换FiFo消息为所述完整的所述FiFo消息;
若所述用于生成所述转换FiFo消息的数据的规模小于所述完整的FiFo消息的总规模,则确定所述转换FiFo消息不是所述完整的FiFo消息。
5.一种数据发送装置,其特征在于,所述装置包括:
创建单元,用于在基于FiFo命名管道进行全双工通信的过程中,当使用远程命名管道发送数据时,调用FiFo消息的静态分配方法创建FiFo消息数据结构;
包装单元,用于在所述FiFo消息的规模不大于第一预置数值的条件下,使用所述FiFo消息包装数据块,所述数据块中被所述FiFo消息包装的数据块称为有效负载,所述有效负载的规模小于或等于所述数据块的规模;
判断单元,用于根据所述FiFo消息的FiFo消息数据结构判断所述数据块是否已被全部包装完毕;
写入单元,用于若所述数据块已被全部包装完毕,将所述FiFo消息的分段标识设置为
0,表示所述FiFo消息为包装所述数据块的最后一个FiFo消息,并调用写方法将用于包装所述数据块的全部FiFo消息写入所述远程命名管道,以使得接收端从本地命名管道获取数据后,对获取的所述数据进行处理后得到所述数据块;
所述包装单元还用于若所述数据块未被全部包装完毕,将所述分段标识设置为1,表示所述FiFo消息之后还有用于包装所述数据块的后续FiFo消息,并将剩余的所述数据块写入所述后续FiFo消息。
6.根据权利要求5所述的装置,其特征在于,所述判断单元具体用于:将所述数据块的规模减去偏移量的差值设置为所述FiFo消息数据结构的参数,所述偏移量表示在使用所述FiFo消息包装所述数据块之前,所述数据块已被包装在先前FiFo消息的总规模,所述偏移量的初始值为0;
判断所述有效负载的规模是否等于所述差值;
若所述FiFo消息的有效负载的规模等于所述差值,确定所述数据块已被全部包装完毕;
若所述FiFo消息的有效负载的规模不等于所述差值,确定所述数据块未被全部包装完毕。
7.一种数据接收装置,其特征在于,所述装置包括:
读取单元,用于在基于FiFo命名管道进行全双工通信的过程中,当使用本地命名管道接收数据时,调用读方法从所述本地命名管道中读取数据,所述从所述本地命名管道中读取的数据不大于第二预置数值;
保存单元,用于将从所述本地命名管道中读取的数据保存到序列化容器中;
转换单元,用于将保存到所述序列化容器中的数据转换为转换FiFo消息;
判断单元,用于判断所述转换FiFo消息是否为完整的FiFo消息,所述FiFo消息用于包装数据块,所述FiFo消息包括有效负载,所述有效负载为,在所述FiFo消息的规模不大于第一预置数值的条件下,所述数据块中被所述FiFo消息包装的数据块,所述有效负载的规模小于或等于所述数据块的规模;
获取单元,用于若所述转换FiFo消息为所述完整的FiFo消息,从所述转换FiFo消息中获取所述有效负载,并在所述序列化容器中删除用于生成所述转换FiFo消息的数据;
所述读取单元还用于若所述转换FiFo消息不是所述完整的FiFo消息,继续执行所述调用读方法从所述本地命名管道中读取数据的操作;
拼接单元,用于将与所述数据块对应的全部有效负载进行拼接得到所述数据块。
8.根据权利要求7所述的装置,所述判断单元具体用于:
调用获取规模方法获取保存在所述序列化容器中的用于生成所述转换FiFo消息的数据的规模;
判断所述用于生成所述转换FiFo消息的数据的规模是否大于或等于所述完整的FiFo消息的总规模,所述完整的FiFo消息的总规模从所述转换FiFo消息中得到;
若所述用于生成所述转换FiFo消息的数据的规模大于或等于所述完整的FiFo消息的总规模,则确定所述转换FiFo消息为所述完整的所述FiFo消息;
若所述用于生成所述转换FiFo消息的数据的规模小于所述完整的FiFo消息的总规模,则确定所述转换FiFo消息不是所述完整的FiFo消息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1或2所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1或2所述的方法。