DatagramChannel 类

定义

面向数据报的套接字的可选通道。

[Android.Runtime.Register("java/nio/channels/DatagramChannel", DoNotGenerateAcw=true)]
public abstract class DatagramChannel : Java.Nio.Channels.Spi.AbstractSelectableChannel, IDisposable, Java.Interop.IJavaPeerable, 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 一来创建数据报通道。 无法为任意预先存在的数据报套接字创建通道。 新创建的数据报通道已打开,但未连接。 数据报通道不需要连接才能 #send send 使用和 #receive receive 方法。 通过调用数据 #connect connect 报通道的方法,可以连接数据报通道,以避免在每次发送和接收操作过程中执行安全检查的开销。 必须连接数据报通道才能使用 #read(java.nio.ByteBuffer) read#write(java.nio.ByteBuffer) write 方法,因为这些方法不接受或返回套接字地址。

连接后,数据报通道将保持连接状态,直到它断开连接或关闭。 是否连接数据报通道可以通过调用其 #isConnected isConnected 方法来确定。

套接字选项是使用 #setOption(SocketOption,Object) setOption 该方法配置的。 Internet 协议套接字的数据报通道支持以下选项:<blockquote<>table class=“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> The size套接字发送缓冲区 </td/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> Re-use address </td/><tr><th scope=“row”><java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST/th><td> 允许传输广播数据报 </td<<>>/tr><tr>th scope=“row”><java.net.StandardSocketOptions#IP_TOS IP_TOS/th><td> Internet Protocol (IP) 标头 </td<>/tr><tr><th scope=“row”><java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF/th><td> Internet Protocol (IP) 多播数据报<的网络接口 /td<>/tr><th><scope=“row”java.net.StandardSocketOptions#IP_MULTICAST_TTL IP_MULTICAST_TTL<>/th><td> The <em>time-to-live</em><对于 Internet 协议 (IP) 多播数据报 </td<>/tr<>tr<>th scope=“row”<>java.net.StandardSocketOptions#IP_MULTICAST_LOOP IP_MULTICAST_LOOP/th<>td> Loopback for Internet Protocol (IP) 多播数据报 </td<>/tr></tbody<>/table></blockquote> 其他(特定于实现)选项,也可能受支持。

数据报通道可以安全地供多个并发线程使用。 它们支持并发读取和写入,但最多一个线程可能正在读取,最多一个线程可能在任意给定时间写入。

在 1.4 中添加。

适用于 . 的 java.nio.channels.DatagramChannelJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

DatagramChannel(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

DatagramChannel(SelectorProvider)

初始化此类的新实例。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsBlocking

指示此通道是否处于阻塞模式。

(继承自 AbstractSelectableChannel)
IsConnected

返回此通道的套接字是否已连接。

IsOpen

如果此通道处于打开状态,则返回 true。

(继承自 AbstractInterruptibleChannel)
IsRegistered

指示此通道是否已向一个或多个选择器注册。

(继承自 AbstractSelectableChannel)
JniIdentityHashCode

面向数据报的套接字的可选通道。

(继承自 Object)
JniPeerMembers

面向数据报的套接字的可选通道。

LocalAddress

面向数据报的套接字的可选通道。

PeerReference

面向数据报的套接字的可选通道。

(继承自 Object)
RemoteAddress

面向数据报的套接字的可选通道。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

Begin()

标记可能无限期阻止的 I/O 操作的开头。

(继承自 AbstractInterruptibleChannel)
Bind(SocketAddress)

已在 1 中添加。

BlockingLock()

获取用于同步 registerconfigureBlocking.

(继承自 AbstractSelectableChannel)
Clone()

创建并返回此对象的副本。

(继承自 Object)
Close()

关闭此通道。

(继承自 AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

调整此通道的阻止模式。

(继承自 AbstractSelectableChannel)
Connect(SocketAddress)

连接此通道的套接字。

ConnectAsync(SocketAddress)

面向数据报的套接字的可选通道。

Disconnect()

断开此通道的套接字的连接。

Dispose()

面向数据报的套接字的可选通道。

(继承自 Object)
Dispose(Boolean)

面向数据报的套接字的可选通道。

(继承自 Object)
End(Boolean)

标记可能无限期阻止的 I/O 操作的末尾。

(继承自 AbstractInterruptibleChannel)
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[])

从此通道读取数据报。

Read(ByteBuffer[], Int32, Int32)

从此通道读取数据报。

Receive(ByteBuffer)

通过此通道接收数据报。

ReceiveAsync(ByteBuffer)

面向数据报的套接字的可选通道。

Register(Selector, Operations)

将此通道注册到给定的选择器,并返回选择键。

(继承自 SelectableChannel)
Register(Selector, Operations, Object)

将此通道注册到给定的选择器,并返回选择键。

(继承自 AbstractSelectableChannel)
Send(ByteBuffer, SocketAddress)

通过此通道发送数据报。

SendAsync(ByteBuffer, SocketAddress)

面向数据报的套接字的可选通道。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetOption(ISocketOption, Object)

已在 1 中添加。

Socket()

检索与此通道关联的数据报套接字。

ToArray<T>()

面向数据报的套接字的可选通道。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

面向数据报的套接字的可选通道。

(继承自 Object)
ValidOps()

返回一个操作集,用于标识此通道支持的操作。

Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Write(ByteBuffer)

将数据报写入此通道。

Write(ByteBuffer[])

将数据报写入此通道。

Write(ByteBuffer[], Int32, Int32)

将数据报写入此通道。

显式接口实现

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)

面向数据报的套接字的可选通道。

WriteAsync(IGatheringByteChannel, ByteBuffer[])

面向数据报的套接字的可选通道。

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

面向数据报的套接字的可选通道。

ReadAsync(IReadableByteChannel, ByteBuffer)

面向数据报的套接字的可选通道。

ReadAsync(IScatteringByteChannel, ByteBuffer[])

面向数据报的套接字的可选通道。

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

面向数据报的套接字的可选通道。

WriteAsync(IWritableByteChannel, ByteBuffer)

面向数据报的套接字的可选通道。

适用于