Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JVM中实现套接字?_Java_Sockets_Network Programming_Jvm - Fatal编程技术网

Java 如何在JVM中实现套接字?

Java 如何在JVM中实现套接字?,java,sockets,network-programming,jvm,Java,Sockets,Network Programming,Jvm,我想知道,套接字是如何在Java虚拟机中实现的 有本地图书馆吗 如果是,它是一个C库吗 在哪里可以找到有关此主题的信息? 这对我没有帮助 一些有趣的链接会有所帮助 更新: Sun是否提供了任何官方信息 提前谢谢 编辑 我找到了证据,我把我的答案标为正确答案。感谢奥斯卡,这对我来说是一个完美的暗示!!!谢谢 可能使用底层平台公开的system-V套接字调用,例如Unix下的system-V,Windows下的WinSock。该规范仅规定了虚拟机必须如何运行,因此实现者可以自由地执行他们希望的操

我想知道,套接字是如何在Java虚拟机中实现的

  • 有本地图书馆吗
  • 如果是,它是一个C库吗
在哪里可以找到有关此主题的信息? 这对我没有帮助

一些有趣的链接会有所帮助

更新: Sun是否提供了任何官方信息

提前谢谢

编辑
我找到了证据,我把我的答案标为正确答案。感谢奥斯卡,这对我来说是一个完美的暗示!!!谢谢

可能使用底层平台公开的system-V套接字调用,例如Unix下的system-V,Windows下的WinSock。该规范仅规定了虚拟机必须如何运行,因此实现者可以自由地执行他们希望的操作。

Java是开源的,因此您可以获取源代码,以便对类进行自动深入检查

作为对您问题的开始和快速回答,以下是我在快速扫描中发现的内容:

private native void socketConnect(InetAddress address, int port, int timeout)

SyEAP,包含本地LIB,我猜它是C++库。< /P> 有许多实现(SSLSocket、PlainSocket等)

JDK7的在线来源是:S不确定它的更新程度

我已经使用IDE来导航每个JDK安装附带的源代码

在中,提供了一条有趣的信息:

实施细节…

…你不需要知道,除非你 子类 SocketImpl/DatagramSocketImpl每个 *套接字对象有一个底层SocketImpl/DatagramSocketImpl 与本机代码的接口。Impl 类实现两种方法来 支持选项:

void setOption(int optID,Object val) 抛出SocketException;对象 getOption(int optID)抛出 SocketException

看起来很像C。这些方法 充当本机方法的粘合剂,以及 确保本机之前的类型安全 方法被调用


我认为它是正确的:java使用本地库来支持套接字。< /P>很难把这个问题作为答案来回答,因为我需要一个官方引用O.S.E.+EXCEL 1,从源代码我可以知道方法是“原生的”,因此使用了一个本地库,可以是C++、C++或汇编。对于报价单,文档未运行软件。:)你的问题的基本原理是什么?我需要比较Linux和Windows下Java和Python的网络编程技术。