消息发送流程

java程序发送一个“hello”到网络上其他主机。步骤如下

  1. 在java内存申请一个内存存放String类型的hello。
  2. socket发送时,先将hello复制到堆外内存(c++程序malloc申请的内存)
  3. 内核将堆外内存的hello发送网卡缓存区

问题来了,内核能访问任意内存。为什么还要由堆内复制到堆外呢

发送的时候需要复制到directBuffer