251 * @throws IOException 252 * If an I/O error occurs 253 */ 254 public abstract SocketChannel openSocketChannel() 255 throws IOException; 256 257 /** 258 * Returns the channel inherited from the entity that created this 259 * Java virtual machine. 260 * 261 * <p> On many operating systems a process, such as a Java virtual 262 * machine, can be started in a manner that allows the process to 263 * inherit a channel from the entity that created the process. The 264 * manner in which this is done is system dependent, as are the 265 * possible entities to which the channel may be connected. For example, 266 * on UNIX systems, the Internet services daemon (<i>inetd</i>) is used to 267 * start programs to service requests when a request arrives on an 268 * associated network port. In this example, the process that is started, 269 * inherits a channel representing a network socket. 270 * 271 * <p> In cases where the inherited channel represents a network socket 272 * then the {@link java.nio.channels.Channel Channel} type returned 273 * by this method is determined as follows: 274 * 275 * <ul> 276 * 277 * <li><p> If the inherited channel represents a stream-oriented connected 278 * socket then a {@link java.nio.channels.SocketChannel SocketChannel} is 279 * returned. The socket channel is, at least initially, in blocking 280 * mode, bound to a socket address, and connected to a peer. 281 * </p></li> 282 * 283 * <li><p> If the inherited channel represents a stream-oriented listening 284 * socket then a {@link java.nio.channels.ServerSocketChannel 285 * ServerSocketChannel} is returned. The server-socket channel is, at 286 * least initially, in blocking mode, and bound to a socket address. 287 * </p></li> 288 * 289 * <li><p> If the inherited channel is a datagram-oriented socket 290 * then a {@link java.nio.channels.DatagramChannel DatagramChannel} is 291 * returned. The datagram channel is, at least initially, in blocking 292 * mode, and bound to a socket address. 293 * </p></li> 294 * 295 * </ul> 296 * 297 * <p> In addition to the network-oriented channels described, this method 298 * may return other kinds of channels in the future. 299 * 300 * <p> The first invocation of this method creates the channel that is 301 * returned. Subsequent invocations of this method return the same 302 * channel. </p> 303 * 304 * @return The inherited channel, if any, otherwise {@code null}. 305 * 306 * @throws IOException 307 * If an I/O error occurs 308 * 309 * @throws SecurityException 310 * If a security manager has been installed and it denies 311 * {@link RuntimePermission}{@code ("inheritedChannel")} 312 * 313 * @since 1.5 314 */ 315 public Channel inheritedChannel() throws IOException { 316 return null; 317 } 318 | 251 * @throws IOException 252 * If an I/O error occurs 253 */ 254 public abstract SocketChannel openSocketChannel() 255 throws IOException; 256 257 /** 258 * Returns the channel inherited from the entity that created this 259 * Java virtual machine. 260 * 261 * <p> On many operating systems a process, such as a Java virtual 262 * machine, can be started in a manner that allows the process to 263 * inherit a channel from the entity that created the process. The 264 * manner in which this is done is system dependent, as are the 265 * possible entities to which the channel may be connected. For example, 266 * on UNIX systems, the Internet services daemon (<i>inetd</i>) is used to 267 * start programs to service requests when a request arrives on an 268 * associated network port. In this example, the process that is started, 269 * inherits a channel representing a network socket. 270 * 271 * <p> In cases where the inherited channel is for an <i>Internet protocol</i> 272 * socket then the {@link Channel Channel} type returned 273 * by this method is determined as follows: 274 * 275 * <ul> 276 * 277 * <li><p> If the inherited channel is for a stream-oriented connected 278 * socket then a {@link SocketChannel SocketChannel} is returned. The 279 * socket channel is, at least initially, in blocking mode, bound 280 * to a socket address, and connected to a peer. 281 * </p></li> 282 * 283 * <li><p> If the inherited channel is for a stream-oriented listening 284 * socket then a {@link ServerSocketChannel ServerSocketChannel} is returned. 285 * The server-socket channel is, at least initially, in blocking mode, 286 * and bound to a socket address. 287 * </p></li> 288 * 289 * <li><p> If the inherited channel is a datagram-oriented socket then a 290 * {@link DatagramChannel DatagramChannel} is returned. The datagram channel 291 * is, at least initially, in blocking mode, and bound to a socket address. 292 * </p></li> 293 * 294 * </ul> 295 * 296 * <p> In cases where the inherited channel is for a <i>Unix domain</i> 297 * socket then the {@link Channel} type returned is the same as for 298 * <i>Internet protocol</i> sockets as described above, except that 299 * datagram-oriented sockets are not supported. 300 * 301 * <p> In addition to the two types of socket just described, this method 302 * may return other types in the future. 303 * 304 * <p> The first invocation of this method creates the channel that is 305 * returned. Subsequent invocations of this method return the same 306 * channel. </p> 307 * 308 * @return The inherited channel, if any, otherwise {@code null}. 309 * 310 * @throws IOException 311 * If an I/O error occurs 312 * 313 * @throws SecurityException 314 * If a security manager has been installed and it denies 315 * {@link RuntimePermission}{@code ("inheritedChannel")} 316 * 317 * @since 1.5 318 */ 319 public Channel inheritedChannel() throws IOException { 320 return null; 321 } 322 |