共用方式為


AsynchronousSocketChannel 類別

定義

數據流導向連接套接字的異步通道。

[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IAsynchronousByteChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousSocketChannel = class
    inherit Object
    interface IAsynchronousByteChannel
    interface IAsynchronousChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
繼承
AsynchronousSocketChannel
屬性
實作

備註

數據流導向連接套接字的異步通道。

異步套接字通道會以兩種方式之一建立。 新建立 AsynchronousSocketChannel 的方法是由叫用這個類別所定義的其中 #open open 一個方法所建立。 新建立的通道已開啟,但尚未連線。 AsynchronousSocketChannel當連接到的套接字時,會建立連線。AsynchronousServerSocketChannel 無法為任意、預先存在的 java.net.Socket socket建立異步套接字通道。

新建立的通道會藉由叫用其 #connect connect 方法來連接;一旦連接,通道就會維持連線,直到關閉為止。 是否連接套接字通道,都可以藉由叫用其 #getRemoteAddress getRemoteAddress 方法來決定。 嘗試在未連線的通道上叫用 I/O 作業,將會導致 NotYetConnectedException 擲回 。

此類型的通道可供多個並行線程使用。 它們支援並行讀取和寫入,不過最多一個讀取作業和一個寫入作業隨時都可以未完成。 如果執行緒在先前的讀取作業完成之前起始讀取作業, ReadPendingException 則會擲回 。 同樣地,嘗試在先前的寫入完成之前起始寫入作業將會擲回 WritePendingException

套接字選項是使用 #setOption(SocketOption,Object) setOption 方法來設定。 異步套接字通道支援下列選項:<blockquote<>數據表類別=“striped”><caption style=“display:none”>Socket options</caption<>thead><tr><th scope=“col”>Option Name</th><scope=“col”>Description</th></tr></thead><tbody<>tr><th scope=“row”>java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</th><td> 套接字傳送的大小buffer </td/tr tr<<>>th scope=“row”><java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF/th><td> 套接字接收緩衝區 </td><<>/<<>>tr tr th scope=“row”/th td> Keep connection alive </td<>/tr><<>tr th scope=“row”><<>java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE<java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR>/th><td> Re-use address </td></tr tr>><<th scope=“row”>java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> 停用 Nagle 演算法 </td<>/tr<>/tbody></table></blockquote> 其他 (實作特定) 選項也可能受到支援。

<h2>逾時</h2>

#read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read這個類別所定義的 和 #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write 方法允許在起始讀取或寫入作業時指定逾時。 如果在作業完成之前經過逾時,作業就會完成,但例外狀況為 InterruptedByTimeoutException。 逾時可能會讓通道或基礎連線處於不一致的狀態。 如果實作無法保證尚未從通道讀取位元組,則會將通道放入實作特定的 <em 錯誤狀態</em>>。 後續嘗試起始 read 作業會導致擲回未指定的運行時間例外狀況。 同樣地,如果 write 作業逾時,且實作無法保證尚未寫入通道的位元組,則進一步嘗試通道 write 會導致擲回未指定的運行時間例外狀況。 當逾時經過時,就不會定義 I/O 作業的 ByteBuffer、 或緩衝區序列的狀態。 應該捨棄緩衝區,或至少要小心,以確保通道保持開啟時不會存取緩衝區。 接受逾時參數的所有方法都會將小於或等於零的值視為表示 I/O 作業不會逾時。

已在1.7中新增。

java.nio.channels.AsynchronousSocketChannelJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

AsynchronousSocketChannel(AsynchronousChannelProvider)

初始化這個類別的新執行個體。

AsynchronousSocketChannel(IntPtr, JniHandleOwnership)

數據流導向連接套接字的異步通道。

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsOpen

數據流導向連接套接字的異步通道。

JniIdentityHashCode

數據流導向連接套接字的異步通道。

(繼承來源 Object)
JniPeerMembers

數據流導向連接套接字的異步通道。

LocalAddress

數據流導向連接套接字的異步通道。

PeerReference

數據流導向連接套接字的異步通道。

(繼承來源 Object)
RemoteAddress

數據流導向連接套接字的異步通道。

ThresholdClass

數據流導向連接套接字的異步通道。

ThresholdType

數據流導向連接套接字的異步通道。

方法

Bind(SocketAddress)

數據流導向連接套接字的異步通道。

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
Close()

關閉此通道。

Connect(SocketAddress, Object, ICompletionHandler)

連接此通道。

Connect(SocketAddress)

連接此通道。

Dispose()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
Dispose(Boolean)

數據流導向連接套接字的異步通道。

(繼承來源 Object)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
Open()

開啟異步套接字通道。

Open(AsynchronousChannelGroup)

開啟異步套接字通道。

Provider()

傳回建立這個通道的提供者。

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

從這個通道將位元組序列讀取至指定的緩衝區。

Read(ByteBuffer, Object, ICompletionHandler)

數據流導向連接套接字的異步通道。

Read(ByteBuffer)

數據流導向連接套接字的異步通道。

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

從這個通道將位元組序列讀入指定緩衝區的子序列。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetOption(ISocketOption, Object)

數據流導向連接套接字的異步通道。

ShutdownInput()

關閉連線以供讀取,而不關閉通道。

ShutdownOutput()

關閉連接以進行寫入,而不關閉通道。

ToArray<T>()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

從指定的緩衝區將位元組序列寫入這個通道。

Write(ByteBuffer, Object, ICompletionHandler)

數據流導向連接套接字的異步通道。

Write(ByteBuffer)

數據流導向連接套接字的異步通道。

Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

從指定緩衝區的子序列,將位元組序列寫入這個通道。

明確介面實作

IJavaPeerable.Disposed()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.Finalized()

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

數據流導向連接套接字的異步通道。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

數據流導向連接套接字的異步通道。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

數據流導向連接套接字的異步通道。

GetJniTypeName(IJavaPeerable)

數據流導向連接套接字的異步通道。

適用於