【问题标题】:Is it possible to memory map a socket to virtual memory?是否可以将套接字内存映射到虚拟内存?
【发布时间】:2016-03-24 13:18:55
【问题描述】:

我正在寻找类似于内存映射文件的东西。它将使虚拟内存逐字节匹配套接字的输出,并在没有接收到新字节时阻塞。这可能吗?

我正在寻找专门针对 Rust 的解决方案,但如果有人知道另一种具有此类功能的语言,我也许可以与之交互。

【问题讨论】:

标签: sockets io rust virtual-memory


【解决方案1】:

没有。这没有意义。套接字不是随机访问设备,映射的长度是不确定的。

【讨论】:

    【解决方案2】:

    当您创建内存映射文件时,您指定要映射的文件以及文件中的数据范围。映射的文件区域是固定的。如果内存映射文件增长(无论出于何种原因),则不会映射新数据。

    在许多系统中,内存映射文件的实现方式与分页相同。它不是将虚拟内存映射到页面文件,而是映射到调用者选择的文件。

    您要求的内容没有意义,因为您要求可变长度数据与固定长度数据结构一起使用。

    【讨论】:

    • 内存映射文件满了怎么办?
    • 刚刚满了?我看不出有什么问题。您只需重新映射即可访问更多内容。
    • 假设当您需要更多页面时可以使用连续范围的页面。
    • 如果不是socket的话,就只能分配内存了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多