在系统类中找到此方法。只是很想知道它 -
public static Channel inheritedChannel() throws IOException {
return SelectorProvider.provider().inheritedChannel();
}
返回从创建此Java虚拟机的实体继承的通道。此方法返回通过调用获得的通道 系统范围默认的inheritedChannel方法 SelectorProvider对象。
答案 0 :(得分:10)
它专为在Unixy系统上inetd
或xinetd
按需启动Java程序而设计。在Designing Services to be Launched from inetd
文章中,Oracle有更多文档和示例代码,遗憾的是与RMI相关,在InheritedChannelConnector
的Jetty源代码中有一个非常简单的示例,在bug JETTY-496中有一些有趣的讨论。引入Jetty功能的地方。
答案 1 :(得分:3)
来自SelectorProvider.inheritedChannel():
返回从创建此实体的实体继承的通道 Java虚拟机。
在许多操作系统上都有一个进程,例如Java虚拟 机器,可以以允许进程的方式启动 从创建进程的实体继承通道。该 完成此操作的方式与系统相关,如同 通道可能连接的可能实体。 例如, 在UNIX系统上,Internet服务守护程序( inetd )用于 当请求到达时,启动程序来服务请求 相关的网络端口。在此示例中,启动的进程, 继承表示网络套接字的通道。
如果继承的通道代表网络套接字 然后返回java.nio.channels.Channel类型 通过这种方法确定如下:
如果继承的通道表示面向流的连接 socket然后是java.nio.channels.SocketChannel 回。套接字通道至少最初是阻塞的 模式,绑定到套接字地址,并连接到对等体。
如果继承的通道表示面向流的侦听 然后返回一个java.nio.channels.ServerSocketChannel。服务器套接字通道是,at 最初,在阻塞模式下,绑定到套接字地址。
如果继承的通道是面向数据报的套接字 然后是java.nio.channels.DatagramChannel 回。数据报通道至少在初始时是阻塞的 模式,并绑定到套接字地址。
除了描述面向网络的频道外,这种方法 将来可能会返回其他渠道。
此方法的第一次调用会创建通道 回。此方法的后续调用返回相同的内容 渠道。