日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ServerSocketChannel API用法

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ServerSocketChannel API用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java.nio.channels
類 ServerSocketChannel

java.lang.Objectjava.nio.channels.spi.AbstractInterruptibleChanneljava.nio.channels.SelectableChanneljava.nio.channels.spi.AbstractSelectableChanneljava.nio.channels.ServerSocketChannel 所有已實現的接口:
Closeable, Channel, InterruptibleChannel

public abstract class ServerSocketChannelextends AbstractSelectableChannel

針對面向流的偵聽套接字的可選擇通道。

服務器套接字通道不是偵聽網絡套接字的完整抽象。必須通過調用 socket 方法所獲得的關聯 ServerSocket 對象來完成對套接字選項的綁定和操作。不可能為任意的已有服務器套接字創建通道,也不可能指定與服務器套接字通道關聯的服務器套接字所使用的 SocketImpl 對象。

通過調用此類的 open 方法創建服務器套接字通道。新創建的服務器套接字通道已打開,但尚未綁定。試圖調用未綁定的服務器套接字通道的 accept 方法會導致拋出 NotYetBoundException。可通過調用相關服務器套接字的某個 bind 方法來綁定服務器套接字通道。

多個并發線程可安全地使用服務器套接字通道。

從以下版本開始:
1.4

構造方法摘要
protected ServerSocketChannel(SelectorProvider?provider) ??????????初始化此類的一個新實例。

?

方法摘要
abstract ?SocketChannelaccept() ??????????接受到此通道套接字的連接。
static?ServerSocketChannelopen() ??????????打開服務器套接字通道。
abstract ?ServerSocketsocket() ??????????獲取與此通道關聯的服務器套接字。
?intvalidOps() ??????????返回一個操作集,標識此通道所支持的操作。

?

從類 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 錯誤

ServerSocketChannel類似用法

  • Android下的ServerSocketChannel使用方法和示例

總結

以上是生活随笔為你收集整理的ServerSocketChannel API用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。