2015-10-09 19 views
-1

我正在尋找一個使用tftp命令集的實現,它可以從遠程服務器獲取數據,但是作爲一個整體獲取數據,它將獲取本地環中的數據大小小於遠程文件大小的緩衝區,並在環形圈起後覆蓋數據。因此,如果有任何進程在數據可用時使用數據,則成功,否則會丟失數據。例如,假設我在本地有一個100 MB的遠程文件和(想要創建?)10 MB大小的環形緩衝區的數據。因此,它將獲取遠程數據並將其放入環形緩衝區。 10 MB之後,它開始覆蓋。 任何建議將不勝感激。提前致謝。Tftp命令實現獲取本地環形緩衝區中的遠程數據

+0

哪部分給你帶來問題?實現一個環形緩衝區或實現一個tftp客戶端? –

+0

爲tftp客戶端實現環形緩衝區 –

回答

3

當您使用Linux時,數據將通過Linux套接字到達您的tftp客戶端。通常,您可以在此套接字上調用read以獲取數據。然而,如果你想使用環形緩衝區,你可以簡單地設置套接字選項PACKET_RX_RING並從內存映射地址空間(根據the packet_mmap documentation在Linux 2.4/2.6/3.x中可用)讀取數據,而不是調用read。沒有必要自己實現環形緩衝區。

示例代碼可從維基連接在那裏,從一個related Stack Overflow question,或從various websites