Share via


DatagramChannel Class

Definition

A selectable channel for datagram-oriented sockets.

[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
Inheritance
Attributes
Implements

Remarks

A selectable channel for datagram-oriented sockets.

A datagram channel is created by invoking one of the #open open methods of this class. It is not possible to create a channel for an arbitrary, pre-existing datagram socket. A newly-created datagram channel is open but not connected. A datagram channel need not be connected in order for the #send send and #receive receive methods to be used. A datagram channel may be connected, by invoking its #connect connect method, in order to avoid the overhead of the security checks are otherwise performed as part of every send and receive operation. A datagram channel must be connected in order to use the #read(java.nio.ByteBuffer) read and #write(java.nio.ByteBuffer) write methods, since those methods do not accept or return socket addresses.

Once connected, a datagram channel remains connected until it is disconnected or closed. Whether or not a datagram channel is connected may be determined by invoking its #isConnected isConnected method.

Socket options are configured using the #setOption(SocketOption,Object) setOption method. A datagram channel to an Internet Protocol socket supports the following options: <blockquote> <table class="striped"> <caption style="display:none">Socket options</caption> <thead> <tr> <th scope="col">Option Name</th> <th scope="col">Description</th> </tr> </thead> <tbody> <tr> <th scope="row"> java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF</th> <td> The size of the socket send buffer </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF</th> <td> The size of the socket receive buffer </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR</th> <td> Re-use address </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#SO_BROADCAST SO_BROADCAST</th> <td> Allow transmission of broadcast datagrams </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#IP_TOS IP_TOS</th> <td> The Type of Service (ToS) octet in the Internet Protocol (IP) header </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#IP_MULTICAST_IF IP_MULTICAST_IF</th> <td> The network interface for Internet Protocol (IP) multicast datagrams </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#IP_MULTICAST_TTL IP_MULTICAST_TTL</th> <td> The <em>time-to-live</em> for Internet Protocol (IP) multicast datagrams </td> </tr> <tr> <th scope="row"> java.net.StandardSocketOptions#IP_MULTICAST_LOOP IP_MULTICAST_LOOP</th> <td> Loopback for Internet Protocol (IP) multicast datagrams </td> </tr> </tbody> </table> </blockquote> Additional (implementation specific) options may also be supported.

Datagram channels are safe for use by multiple concurrent threads. They support concurrent reading and writing, though at most one thread may be reading and at most one thread may be writing at any given time.

Added in 1.4.

Java documentation for java.nio.channels.DatagramChannel.

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Constructors

DatagramChannel(IntPtr, JniHandleOwnership)

A constructor used when creating managed representations of JNI objects; called by the runtime.

DatagramChannel(SelectorProvider)

Initializes a new instance of this class.

Properties

Class

Returns the runtime class of this Object.

(Inherited from Object)
Handle

The handle to the underlying Android instance.

(Inherited from Object)
IsBlocking

Indicates whether this channel is in blocking mode.

(Inherited from AbstractSelectableChannel)
IsConnected

Returns whether this channel's socket is connected or not.

IsOpen

Returns true if this channel is open.

(Inherited from AbstractInterruptibleChannel)
IsRegistered

Indicates whether this channel is registered with one or more selectors.

(Inherited from AbstractSelectableChannel)
JniIdentityHashCode (Inherited from Object)
JniPeerMembers
LocalAddress
PeerReference (Inherited from Object)
RemoteAddress
ThresholdClass

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

ThresholdType

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

Methods

Begin()

Marks the beginning of an I/O operation that might block indefinitely.

(Inherited from AbstractInterruptibleChannel)
Bind(SocketAddress)

Added in 1.

BlockingLock()

Gets the object used for the synchronization of register and configureBlocking.

(Inherited from AbstractSelectableChannel)
Clone()

Creates and returns a copy of this object.

(Inherited from Object)
Close()

Closes this channel.

(Inherited from AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

Adjusts this channel's blocking mode.

(Inherited from AbstractSelectableChannel)
Connect(SocketAddress)

Connects this channel's socket.

ConnectAsync(SocketAddress)
Disconnect()

Disconnects this channel's socket.

Dispose() (Inherited from Object)
Dispose(Boolean) (Inherited from Object)
End(Boolean)

Marks the end of an I/O operation that might block indefinitely.

(Inherited from AbstractInterruptibleChannel)
Equals(Object)

Indicates whether some other object is "equal to" this one.

(Inherited from Object)
GetHashCode()

Returns a hash code value for the object.

(Inherited from Object)
ImplCloseChannel()

Closes this channel.

(Inherited from AbstractSelectableChannel)
ImplCloseSelectableChannel()

Closes this selectable channel.

(Inherited from AbstractSelectableChannel)
ImplConfigureBlocking(Boolean)

Adjusts this channel's blocking mode.

(Inherited from AbstractSelectableChannel)
JavaFinalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

(Inherited from Object)
KeyFor(Selector)

Gets this channel's selection key for the specified selector.

(Inherited from AbstractSelectableChannel)
Notify()

Wakes up a single thread that is waiting on this object's monitor.

(Inherited from Object)
NotifyAll()

Wakes up all threads that are waiting on this object's monitor.

(Inherited from Object)
Open()

Opens a datagram channel.

Open(IProtocolFamily)

Opens a datagram channel.

Provider()

Returns the provider that created this channel.

(Inherited from AbstractSelectableChannel)
Read(ByteBuffer)

Reads a datagram from this channel.

Read(ByteBuffer[], Int32, Int32)

Reads a datagram from this channel.

Read(ByteBuffer[])

Reads a datagram from this channel.

Receive(ByteBuffer)

Receives a datagram via this channel.

ReceiveAsync(ByteBuffer)
Register(Selector, Operations, Object)

Registers this channel with the given selector, returning a selection key.

(Inherited from AbstractSelectableChannel)
Register(Selector, Operations)

Registers this channel with the given selector, returning a selection key.

(Inherited from SelectableChannel)
Send(ByteBuffer, SocketAddress)

Sends a datagram via this channel.

SendAsync(ByteBuffer, SocketAddress)
SetHandle(IntPtr, JniHandleOwnership)

Sets the Handle property.

(Inherited from Object)
SetOption(ISocketOption, Object)

Added in 1.

Socket()

Retrieves a datagram socket associated with this channel.

ToArray<T>() (Inherited from Object)
ToString()

Returns a string representation of the object.

(Inherited from Object)
UnregisterFromRuntime() (Inherited from Object)
ValidOps()

Returns an operation set identifying this channel's supported operations.

Wait()

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>.

(Inherited from Object)
Wait(Int64, Int32)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)
Wait(Int64)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)
Write(ByteBuffer)

Writes a datagram to this channel.

Write(ByteBuffer[], Int32, Int32)

Writes a datagram to this channel.

Write(ByteBuffer[])

Writes a datagram to this channel.

Explicit Interface Implementations

IJavaPeerable.Disposed() (Inherited from Object)
IJavaPeerable.DisposeUnlessReferenced() (Inherited from Object)
IJavaPeerable.Finalized() (Inherited from Object)
IJavaPeerable.JniManagedPeerState (Inherited from Object)
IJavaPeerable.SetJniIdentityHashCode(Int32) (Inherited from Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) (Inherited from Object)
IJavaPeerable.SetPeerReference(JniObjectReference) (Inherited from Object)

Extension Methods

JavaCast<TResult>(IJavaObject)

Performs an Android runtime-checked type conversion.

JavaCast<TResult>(IJavaObject)
GetJniTypeName(IJavaPeerable)
WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)
WriteAsync(IGatheringByteChannel, ByteBuffer[])
ReadAsync(IReadableByteChannel, ByteBuffer)
ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)
ReadAsync(IScatteringByteChannel, ByteBuffer[])
WriteAsync(IWritableByteChannel, ByteBuffer)

Applies to