語言

DatagramChannel 類別

定義

一個可選擇的通道,用於資料報導向的套接字。

[Android.Runtime.Register("java/nio/channels/DatagramChannel", DoNotGenerateAcw=true)]
public abstract class DatagramChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Nio.Channels.IByteChannel, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel
[<Android.Runtime.Register("java/nio/channels/DatagramChannel", DoNotGenerateAcw=true)>]
type DatagramChannel = class
    inherit AbstractSelectableChannel
    interface IByteChannel
    interface IReadableByteChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IWritableByteChannel
    interface IGatheringByteChannel
    interface IScatteringByteChannel
繼承
屬性
實作

備註

一個可選擇的通道,用於資料報導向的套接字。

資料報通道是透過呼叫 #open open 此類別的方法之一來建立的。 無法為任意既有的資料報套接字建立通道。 新建立的資料報通道是開啟的,但尚未連接。 使用 and #send send 方法不必連接#receive receive資料報通道。 資料報通道可透過呼叫其 #connect connect 方法連接,以避免每次發送與接收操作中安全檢查的額外負擔。 必須連接資料報通道才能使用 #read(java.nio.ByteBuffer) read and #write(java.nio.ByteBuffer) write 方法,因為這些方法不接受或回傳套接字位址。

一旦連接,資料報通道會保持連線狀態,直到斷開或關閉為止。 資料報通道是否連接,可透過呼叫其 #isConnected isConnected 方法來判斷。

套接字選項是透過此 #setOption(SocketOption,Object) setOption 方法進行配置的。 資料報通道連接網際網路協定套接字支援以下選項:<blockquote><table class=“striped”caption>< style=“display:none”>socket options</caption><thead><tr><th scope=“col”>Option Name</th><th scope =“col”>Description</th></thead><>< tbody><tr><th scope=“row”>java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</th><td 大小>socket 發送緩衝區 </td></tr><tr th><scope = “row”>java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th><td> 接收緩衝<區大小 /td></tr><tr th><scope = “row”>java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR</th><td> 重複使用 </td></tr><tr th><scope = “row”>java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST</th><td> 允許傳輸廣播資料報 </td></tr><tr><th 範圍=“row”>java.net.StandardSocketOptions#IP_TOS IP_TOS</th><td> 網際協定(IP)標頭<中的服務類型(ToS) 八位元組 /td></tr><tr><th scope =“row”>java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF</th><td> 網際協定(IP)多播資料報<的網路介面 /td></tr><tr th><scope =“row”>java.net.StandardSocketOptions#IP_MULTICAST_TTL IP_MULTICAST_TTL</th><td><em>存活<時間/em>網際網路協定(IP)多播資料報 </td></tr><tr><th scope =“row”>java.net.StandardSocketOptions#IP_MULTICAST_LOOP IP_MULTICAST_LOOP</th><td> 網際協定(IP)多播資料報<回圈 /td></tr></tbody></table></blockquote> 也可能支援額外的(實作專屬)選項。

資料報通道對多個並行執行緒是安全的。 它們支援同時閱讀與寫入,但同時最多只有一個執行緒在閱讀,最多只有一個執行緒在寫入。

在 1.4 版本加入。

Java 文件 java.nio.channels.DatagramChannel

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
DatagramChannel(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

DatagramChannel(SelectorProvider)

初始化此類別的新實例。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsBlocking

顯示該頻道是否處於阻塞模式。

(繼承來源 AbstractSelectableChannel)
IsConnected

無論該通道的插座是否連接,都會回傳。

IsOpen

如果此通道開啟,則回傳為真。

(繼承來源 AbstractInterruptibleChannel)
IsRegistered

顯示該頻道是否註冊於一個或多個選擇器。

(繼承來源 AbstractSelectableChannel)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
JniPeerMembers

一個可選擇的通道,用於資料報導向的套接字。

LocalAddress

回傳該通道的套接字綁定的套接字位址,或 null 如果套接字未綁定,則回傳。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
RemoteAddress

回傳該通道套接字所連接的遠端位址,或 null 若套接字未連接則回傳。

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
Begin()

這標誌著一個可能無限期阻塞的 I/O 操作開始。

(繼承來源 AbstractInterruptibleChannel)
Bind(SocketAddress)

新增 1.

BlockingLock()

取得用於同步 registerconfigureBlocking的物件。

(繼承來源 AbstractSelectableChannel)
Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Close()

關閉這個頻道。

(繼承來源 AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

調整此頻道的阻擋模式。

(繼承來源 AbstractSelectableChannel)
Connect(SocketAddress)

連接這個頻道的插座。

ConnectAsync(SocketAddress)

一個可選擇的通道,用於資料報導向的套接字。

Construct(JniObjectReference, JniObjectReferenceOptions)

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
Disconnect()

斷開這個頻道的插座。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
End(Boolean)

這表示一個可能無限期阻塞的 I/O 操作結束。

(繼承來源 AbstractInterruptibleChannel)
Equals(Object)

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
ImplCloseChannel()

關閉這個頻道。

(繼承來源 AbstractSelectableChannel)
ImplCloseSelectableChannel()

關閉這個可選頻道。

(繼承來源 AbstractSelectableChannel)
ImplConfigureBlocking(Boolean)

調整此頻道的阻擋模式。

(繼承來源 AbstractSelectableChannel)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
KeyFor(Selector)

取得該頻道指定選擇器的選擇鍵。

(繼承來源 AbstractSelectableChannel)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Open()

開啟一個資料報通道。

Open(IProtocolFamily)

開啟一個資料報通道。

Provider()

回傳創建此通道的提供者。

(繼承來源 AbstractSelectableChannel)
Read(ByteBuffer)

讀取這個通道的資料報。

Read(ByteBuffer[], Int32, Int32)

讀取這個通道的資料報。

Read(ByteBuffer[])

讀取這個通道的資料報。

Receive(ByteBuffer)

透過此通道接收資料報。

ReceiveAsync(ByteBuffer)

一個可選擇的通道,用於資料報導向的套接字。

Register(Selector, Operations, Object)

將此通道註冊給指定的選擇器,並回傳一個選擇鍵。

(繼承來源 AbstractSelectableChannel)
Register(Selector, Operations)

將此通道註冊給指定的選擇器,並回傳一個選擇鍵。

(繼承來源 SelectableChannel)
Send(ByteBuffer, SocketAddress)

透過這個通道傳送資料報。

SendAsync(ByteBuffer, SocketAddress)

一個可選擇的通道,用於資料報導向的套接字。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

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

新增 1.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
Socket()

擷取與此通道相關的資料報套接字。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
ValidOps()

回傳一個操作集,識別該通道所支援的操作。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

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

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Write(ByteBuffer)

會寫入資料報到這個通道。

Write(ByteBuffer[], Int32, Int32)

會寫入資料報到這個通道。

Write(ByteBuffer[])

會寫入資料報到這個通道。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

一個可選擇的通道,用於資料報導向的套接字。

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

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

一個可選擇的通道,用於資料報導向的套接字。

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

一個可選擇的通道,用於資料報導向的套接字。

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

一個可選擇的通道,用於資料報導向的套接字。

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

一個可選擇的通道,用於資料報導向的套接字。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

一個可選擇的通道,用於資料報導向的套接字。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個可選擇的通道,用於資料報導向的套接字。

ReadAsync(IReadableByteChannel, ByteBuffer)

一個可選擇的通道,用於資料報導向的套接字。

ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)

一個可選擇的通道,用於資料報導向的套接字。

ReadAsync(IScatteringByteChannel, ByteBuffer[])

一個可選擇的通道,用於資料報導向的套接字。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)

一個可選擇的通道,用於資料報導向的套接字。

WriteAsync(IGatheringByteChannel, ByteBuffer[])

一個可選擇的通道,用於資料報導向的套接字。

WriteAsync(IWritableByteChannel, ByteBuffer)

一個可選擇的通道,用於資料報導向的套接字。

適用於