我正在尝试使用Raspberry Pi创建网关,该网关需要定期推送数据,但有时会失去Internet连接。有可用的方法来存储收到的数据并在可用连接时将其推送吗?
好消息是,通过TCP / IP连接发送数据不是特定于块的,因此socket.send(“ Foo \ n”); socket.send(“ Bar \ n”);与socket.send(“ Foo \ nBar \ n”)相同;
因此,您可以通过分配一个64K的块并向其附加数据来避免零碎的内存分配。如果已填满,则可以分配另一个,或者将两者链接在一起,或者将其清空,然后注意您已经删除了数据-无论如何,您都必须编写一些代码,因为最终您将用完空间。
因此,数据到达:将其放在缓冲区的末尾,然后尝试发送缓冲区的整个填充部分(新数据和已经存在的任何内容)。如果发送成功,请清除缓冲区。
为了使内容整洁,当您建立Internet连接时,请刷新连接中缓冲区的内容(如果有的话。)>