是否可以将套接字映射到虚拟内存?

时间:2015-12-17 22:16:54

标签: sockets io rust virtual-memory

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

我正在寻找专门针对Rust的解决方案,但如果有人知道另一种语言具有这样的功能,我可能能够与它进行交互。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:-1)

我担心它不是支持内存映射套接字的编程语言指定功能。以下文档可能对您有所帮助。

https://www.kernel.org/doc/Documentation/networking/packet_mmap.txt