因为套接字的概念根本没有映射到随机访问内存数组的概念,这是mmap
给你的抽象。块设备(磁盘)上的文件通常允许随机读/写访问。这很好地映射到内存中连续的数组,它也为您提供随机读/写访问。
然而,套接字通常是面向流(或数据包/数据报)的。意思是,数据流通过套接字发送,并从套接字接收数据流。但是,您不能,例如,写入/读取开放套接字流的第N个字节 - 这在概念上没有任何意义。
事实上,linux中的一些协议族可以使用,即:
对于其余协议,未实现/可能进行映射。例如PF_INET
调用socket的mmap系统调用here
另见: