java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.nio.channels
类 ServerSocketChannel

java.lang.Object
  继承者 java.nio.channels.spi.AbstractInterruptibleChannel
      继承者 java.nio.channels.SelectableChannel
          继承者 java.nio.channels.spi.AbstractSelectableChannel
              继承者 java.nio.channels.ServerSocketChannel
所有已实现的接口:
Closeable, Channel, InterruptibleChannel

public abstract class ServerSocketChannel
extends AbstractSelectableChannel

针对面向流的侦听套接字的可选择通道。

服务器套接字通道不是侦听网络套接字的完整抽象。必须通过调用 socket 方法所获得的关联 ServerSocket 对象来完成对套接字选项的绑定和操作。不可能为任意的已有服务器套接字创建通道,也不可能指定与服务器套接字通道关联的服务器套接字所使用的 SocketImpl 对象。

通过调用此类的 open 方法创建服务器套接字通道。新创建的服务器套接字通道已打开,但尚未绑定。试图调用未绑定的服务器套接字通道的 accept 方法会导致抛出 NotYetBoundException。可通过调用相关服务器套接字的某个 bind 方法来绑定服务器套接字通道。

多个并发线程可安全地使用服务器套接字通道。

从以下版本开始:
1.4

构造方法摘要
protected ServerSocketChannel(SelectorProvider provider)
          初始化此类的一个新实例。
 
方法摘要
abstract  SocketChannel accept()
          接受到此通道套接字的连接。
static ServerSocketChannel open()
          打开服务器套接字通道。
abstract  ServerSocket socket()
          检索与此通道关联的服务器套接字。
 int validOps()
          返回一个操作集,标识此通道所支持的操作。
 
从类 java.nio.channels.spi.AbstractSelectableChannel 继承的方法
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
 
从类 java.nio.channels.SelectableChannel 继承的方法
register
 
从类 java.nio.channels.spi.AbstractInterruptibleChannel 继承的方法
begin, close, end, isOpen
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 java.nio.channels.Channel 继承的方法
close, isOpen
 

构造方法详细信息

ServerSocketChannel

protected ServerSocketChannel(SelectorProvider provider)
初始化此类的一个新实例。

方法详细信息

open

public static ServerSocketChannel open()
                                throws IOException
打开服务器套接字通道。

通过调用系统级默认 SelectorProvider 对象的 openServerSocketChannel 方法来创建新的通道。

新通道的套接字最初是未绑定的;可以接受连接之前,必须通过它的某个套接字的 bind 方法将其绑定到具体的地址。

返回:
新的套接字通道
抛出:
IOException - 如果发生 I/O 错误

validOps

public final int validOps()
返回一个操作集,标识此通道所支持的操作。

服务器套接字通道仅支持接受新的连接,所以此方法返回 SelectionKey.OP_ACCEPT

指定者:
SelectableChannel 中的 validOps
返回:
有效操作集

socket

public abstract ServerSocket socket()
检索与此通道关联的服务器套接字。

返回的对象不会声明任何在 ServerSocket 类中未声明的公共方法。

返回:
与此通道关联的服务器套接字

accept

public abstract SocketChannel accept()
                              throws IOException
接受到此通道套接字的连接。

如果此通道处于非阻塞模式,那么在不存在挂起的连接时,此方法将直接返回 null。否则,在新的连接可用或者发生 I/O 错误之前会无限期地阻塞它。

不管此通道的阻塞模式如何,此方法返回的套接字通道(如果有)将处于阻塞模式。

此方法执行的安全检查与 ServerSocket 类的 accept 方法执行的安全检查完全相同。也就是说,如果已安装了安全管理器,则对于每个新的连接,此方法都会验证安全管理器的 checkAccept 方法是否允许使用该连接的远程端点的地址和端口号。

返回:
用于新连接的套接字通道,或者如果此通道处于非阻塞模式并且没有要接受的可用连接,则返回 null
抛出:
ClosedChannelException - 如果此通道已关闭
AsynchronousCloseException - 如果正在进行接受操作时另一个线程关闭了此通道
ClosedByInterruptException - 如果正在进行接受操作时另一个线程中断了当前线程,因此关闭了该通道并将当前线程的状态设置为中断
NotYetBoundException - 如果尚未绑定此通道的套接字
SecurityException - 如果已安装安全管理器并且它不允许对新连接的远程端点进行访问
IOException - 如果发生其他 I/O 错误

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策