在 Linux 上,我假设 Java 套接字最终会调用 glibc 套接字。
这两层之间的相互作用是如何发生的?它是否类似于 JNI 调用,或者是否有一些特殊的更快的方法从 Java 访问 glibc 函数?
谢谢!
最佳答案
套接字由内核实现,系统调用函数包装器由 JVM 实现者碰巧使用的任何 C 库提供。 Java通过JNI调用C库,C库通过系统调用软件中断调用内核。尽管实现细节可能有所不同,但 JDK 之间的此过程没有概念上的差异。
glibc sockets
确实没有这样的事情。套接字函数是系统调用。 glibc 所做的只是提供 C 包装器。
关于java.net.socket 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064170/