linux - Tftp 命令实现在本地环形缓冲区中获取远程数据

标签 linux tftp

我正在寻找一种使用 tftp 命令集的实现,它可以从远程服务器获取数据,但不是完全获取整个数据,而是在大小小于远程文件大小的本地环形缓冲区中获取数据,并在环被循环后覆盖数据。因此,如果任何进程在数据可用期间使用该数据,则它会成功,否则会丢失数据。例如,假设我在远程文件中有 100 MB 的数据,并且(想要创建?)本地 10 MB 大小的环形缓冲区。因此,它获取远程数据并将其放入环形缓冲区中。圈出10MB后,开始覆盖。 任何建议将受到高度赞赏。提前致谢。

最佳答案

当您使用 Linux 时,数据将通过 Linux 套接字到达您的 tftp 客户端。通常,您会在此套接字上调用read来获取数据。

但是,如果您想使用环形缓冲区,您只需设置套接字选项 PACKET_RX_RING 并从内存映射地址空间读取(根据 the packet_mmap documentation 在 Linux 2.4/2.6/3.x 中可用),而不是调用 read。无需自己实现环形缓冲区。

示例代码可从此处链接的 Wiki 获取,地址为 related Stack Overflow question ,或来自various websites .

关于linux - Tftp 命令实现在本地环形缓冲区中获取远程数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33032287/

相关文章:

ubuntu - tftp options put 选项不上传文件

linux - 请求一个 IP 并从同一台机器上的其他 IP 回复

Linux下使用grep命令

从 C 源代码调用 tftp get 命令

shell - 创建一个 bash 文件用于通过 tftp 传输文件

c - 正在检测 TFTP 数据的传入端口?

ruby-on-rails - 在 ruby​​ 中获取系统正常运行时间

linux 上的 java keylistener

c - 请评论这是否适用于进程和线程之间的通信

linux - 新的 kubernetes 部署 (kubernetes-cli) 自动创建 1000 个副本