java.net.socket 实现

标签 java sockets io

在 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/

相关文章:

c - gsl_vector_get() 在 printf() 中返回错误值

java - JMeter 是否池化 HTTP 连接?

java - 枚举可以是两个阶段的一部分吗?

javascript - Node.js + Python 子进程 : Print returns data, 但没有返回

delphi - 突触:无法从套接字接收数据

Java TCP/IP 套接字

Java File 无法打开某些文件

c# - 强制关闭流

java - 如何在 Android 8 的主屏幕上创建快捷方式?

java - 如何根据字段值过滤 ElasticSearch 结果?