Sockets 是否可以将套接字映射到虚拟内存?
我正在寻找类似于内存映射文件的东西。它将使虚拟内存逐字节匹配套接字的输出,并在没有收到新字节时阻塞。这可能吗Sockets 是否可以将套接字映射到虚拟内存?,sockets,io,rust,virtual-memory,Sockets,Io,Rust,Virtual Memory,我正在寻找类似于内存映射文件的东西。它将使虚拟内存逐字节匹配套接字的输出,并在没有收到新字节时阻塞。这可能吗 我正在专门寻找一种解决生锈问题的方法,但如果有人知道另一种语言有这样的功能,我可能可以与之交互。不,这没有意义。套接字不是随机访问设备,映射长度未定义。创建内存映射文件时,指定要映射的文件以及文件中的数据范围。映射的文件区域是固定的。如果内存映射文件因任何原因而增长,则新数据不会被映射 在许多系统中,内存映射文件的实现方式与分页相同。虚拟内存不是映射到页面文件,而是映射到调用者选择的文件
我正在专门寻找一种解决生锈问题的方法,但如果有人知道另一种语言有这样的功能,我可能可以与之交互。不,这没有意义。套接字不是随机访问设备,映射长度未定义。创建内存映射文件时,指定要映射的文件以及文件中的数据范围。映射的文件区域是固定的。如果内存映射文件因任何原因而增长,则新数据不会被映射 在许多系统中,内存映射文件的实现方式与分页相同。虚拟内存不是映射到页面文件,而是映射到调用者选择的文件
您所要求的没有意义,因为您要求可变长度的数据与固定长度的数据结构一起使用。当内存映射文件填满时会发生什么?它只是满了?我看没问题。您只需重新映射即可访问更多。这假设在您需要更多页面时,有一个连续的页面范围可用。如果不是套接字,则只需分配内存即可。恐怕这不是支持内存映射套接字的编程语言指定功能。以下文件可能会对您有所帮助。如果有人感兴趣,这个家伙解决了OP的问题,还为内核2.0.36提供了补丁。