|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
java.nio.channels.ServerSocketChannel
public abstract class ServerSocketChannel
針對導向串流的偵聽Socket的可選擇通道。
伺服器Socket通道不是偵聽網路Socket的完整抽象。必須通過調用 socket 方法所獲得的關聯 ServerSocket 物件來完成對Socket選項的綁定和操作。不可能為任意的已有伺服器Socket創建通道,也不可能指定與伺服器Socket通道關聯的伺服器Socket所使用的 SocketImpl 物件。
通過調用此類別的 open 方法創建伺服器Socket通道。新創建的伺服器Socket通道已打開,但尚未綁定。試圖調用未綁定的伺服器Socket通道的 accept 方法會導致拋出 NotYetBoundException。可通過調用相關伺服器Socket的某個 bind 方法來綁定伺服器Socket通道。
多個共時執行緒可安全地使用伺服器Socket通道。
| 建構子摘要 | |
|---|---|
protected |
ServerSocketChannel(SelectorProvider provider)
初始化此類別的一個新實例。 |
| 方法摘要 | |
|---|---|
abstract SocketChannel |
accept()
接受到此通道Socket的連接。 |
static ServerSocketChannel |
open()
打開伺服器Socket通道。 |
abstract ServerSocket |
socket()
獲取與此通道關聯的伺服器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 |
| 建構子詳細資訊 |
|---|
protected ServerSocketChannel(SelectorProvider provider)
| 方法詳細資訊 |
|---|
public static ServerSocketChannel open()
throws IOException
通過調用系統級預設 SelectorProvider 物件的 openServerSocketChannel 方法來創建新的通道。
新通道的Socket最初是未綁定的;可以接受連接之前,必須通過它的某個Socket的 bind 方法將其綁定到具體的位址。
IOException - 如果發生 I/O 錯誤public final int validOps()
伺服器Socket通道僅支持接受新的連接,所以此方法返回 SelectionKey.OP_ACCEPT。
SelectableChannel 中的 validOpspublic abstract ServerSocket socket()
返回的物件不會宣告任何在 ServerSocket 類別中未宣告的公共方法。
public abstract SocketChannel accept()
throws IOException
如果此通道處於非阻塞網要,那麼在不存在掛起的連接時,此方法將直接返回 null。否則,在新的連接可用或者發生 I/O 錯誤之前會無限期地阻塞它。
不管此通道的阻塞網要如何,此方法返回的Socket通道(如果有)將處於阻塞網要。
此方法執行的安全檢查與 ServerSocket 類別的 accept 方法執行的安全檢查完全相同。也就是說,如果已安裝了安全管理器,則對於每個新的連接,此方法都會驗證安全管理器的 checkAccept 方法是否允許使用該連接的遠端端點的位址和埠號號。
ClosedChannelException - 如果此通道已關閉
AsynchronousCloseException - 如果正在進行接受操作時另一個執行緒關閉了此通道
ClosedByInterruptException - 如果正在進行接受操作時另一個執行緒中斷了當前執行緒,因此關閉了該通道並將當前執行緒的狀態設置為中斷
NotYetBoundException - 如果尚未綁定此通道的Socket
SecurityException - 如果已安裝安全管理器並且它不允許對新連接的遠端端點進行存取
IOException - 如果發生其他 I/O 錯誤
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。