description

# RawDatagramSocket class Null safety

A RawDatagramSocket is an unbuffered interface to a UDP socket.

The raw datagram socket delivers the datagrams in the same chunks as the underlying operating system. It's a Stream of RawSocketEvents.

Note that the event RawSocketEvent.readClosed will never be received as an UDP socket cannot be closed by a remote peer.

It is not the same as a POSIX raw socket.

Inheritance
  - Object
  - Stream<RawSocketEvent>
  - RawDatagramSocket

## Constructors

RawDatagramSocket()

## Properties

address → InternetAddress
  Returns the address used by this socket.
  read-only
broadcastEnabled ↔ bool
  Set or get, whether IPv4 broadcast is enabled. [...]
  read / write
first → Future<RawSocketEvent>
  The first element of this stream. [...]
  read-only, inherited
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
isBroadcast → bool
  Whether this stream is a broadcast stream.
  read-only, inherited
isEmpty → Future<bool>
  Whether this stream contains any elements. [...]
  read-only, inherited
last → Future<RawSocketEvent>
  The last element of this stream. [...]
  read-only, inherited
length → Future<int>
  The number of elements in this stream. [...]
  read-only, inherited
multicastHops ↔ int
  Set or get, the maximum network hops for multicast packages originating from this socket. [...]
  read / write
multicastInterface ↔ NetworkInterface?
  Set or get, the network interface used for outgoing multicast packages. [...]
  @Deprecated("This property is not implemented. Use getRawOption and " "setRawOption instead."), read / write
multicastLoopback ↔ bool
  Set or get, whether multicast traffic is looped back to the host. [...]
  read / write
port → int
  Returns the port used by this socket.
  read-only
readEventsEnabled ↔ bool
  Set or get, if the RawDatagramSocket should listen for RawSocketEvent.read events. Default is `true`.
  read / write
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited
single → Future<RawSocketEvent>
  The single element of this stream. [...]
  read-only, inherited
writeEventsEnabled ↔ bool
  Set or get, if the RawDatagramSocket should listen for RawSocketEvent.write events. Default is `true`. This is a one-shot listener, and writeEventsEnabled must be set to true again to receive another write event.
  read / write

## Methods

any(bool test(RawSocketEvent element)) → Future<bool>
  Checks whether `test` accepts any element provided by this stream. [...]
  inherited
asBroadcastStream({void onListen(StreamSubscription<RawSocketEvent> subscription), void onCancel(StreamSubscription<RawSocketEvent> subscription)}) → Stream<RawSocketEvent>
  Returns a multi-subscription stream that produces the same events as this. [...]
  inherited
asyncExpand<E>(Stream<E>? convert(RawSocketEvent event)) → Stream<E>
  Transforms each element into a sequence of asynchronous events. [...]
  inherited
asyncMap<E>(FutureOr<E> convert(RawSocketEvent event)) → Stream<E>
  Creates a new stream with each data event of this stream asynchronously mapped to a new event. [...]
  inherited
cast<R>() → Stream<R>
  Adapt this stream to be a `Stream<R>`. [...]
  inherited
close() → void
  Close the datagram socket.
contains(Object? needle) → Future<bool>
  Returns whether `needle` occurs in the elements provided by this stream. [...]
  inherited
distinct([bool equals(RawSocketEvent previous, RawSocketEvent next)]) → Stream<RawSocketEvent>
  Skips data events if they are equal to the previous data event. [...]
  inherited
drain<E>([E? futureValue]) → Future<E>
  Discards all data on this stream, but signals when it is done or an error occurred. [...]
  inherited
elementAt(int index) → Future<RawSocketEvent>
  Returns the value of the `index`th data event of this stream. [...]
  inherited
every(bool test(RawSocketEvent element)) → Future<bool>
  Checks whether `test` accepts all elements provided by this stream. [...]
  inherited
expand<S>(Iterable<S> convert(RawSocketEvent element)) → Stream<S>
  Transforms each element of this stream into a sequence of elements. [...]
  inherited
firstWhere(bool test(RawSocketEvent element), {RawSocketEvent orElse()}) → Future<RawSocketEvent>
  Finds the first element of this stream matching `test`. [...]
  inherited
fold<S>(S initialValue, S combine(S previous, RawSocketEvent element)) → Future<S>
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
forEach(void action(RawSocketEvent element)) → Future
  Executes `action` on each element of this stream. [...]
  inherited
getRawOption(RawSocketOption option) → Uint8List
  Use getRawOption to get low level information about the RawSocket. See RawSocketOption for available options. [...]
handleError(Function onError, {bool test(dynamic error)}) → Stream<RawSocketEvent>
  Creates a wrapper Stream that intercepts some errors from this stream. [...]
  inherited
join([String separator = ""]) → Future<String>
  Combines the string representation of elements into a single string. [...]
  inherited
joinMulticast(InternetAddress group, [NetworkInterface? interface]) → void
  Join a multicast group. [...]
lastWhere(bool test(RawSocketEvent element), {RawSocketEvent orElse()}) → Future<RawSocketEvent>
  Finds the last element in this stream matching `test`. [...]
  inherited
leaveMulticast(InternetAddress group, [NetworkInterface? interface]) → void
  Leave a multicast group. [...]
listen(void onData(RawSocketEvent event), {Function? onError, void onDone(), bool? cancelOnError}) → StreamSubscription<RawSocketEvent>
  Adds a subscription to this stream. [...]
  inherited
map<S>(S convert(RawSocketEvent event)) → Stream<S>
  Transforms each element of this stream into a new stream event. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
pipe(StreamConsumer<RawSocketEvent> streamConsumer) → Future
  Pipes the events of this stream into `streamConsumer`. [...]
  inherited
receive() → Datagram?
  Receive a datagram. If there are no datagrams available `null` is returned. [...]
reduce(RawSocketEvent combine(RawSocketEvent previous, RawSocketEvent element)) → Future<RawSocketEvent>
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
send(List<int> buffer, InternetAddress address, int port) → int
  Send a datagram. [...]
setRawOption(RawSocketOption option) → void
  Use setRawOption to customize the RawSocket. See RawSocketOption for available options. [...]
singleWhere(bool test(RawSocketEvent element), {RawSocketEvent orElse()}) → Future<RawSocketEvent>
  Finds the single element in this stream matching `test`. [...]
  inherited
skip(int count) → Stream<RawSocketEvent>
  Skips the first `count` data events from this stream. [...]
  inherited
skipWhile(bool test(RawSocketEvent element)) → Stream<RawSocketEvent>
  Skip data events from this stream while they are matched by `test`. [...]
  inherited
take(int count) → Stream<RawSocketEvent>
  Provides at most the first `count` data events of this stream. [...]
  inherited
takeWhile(bool test(RawSocketEvent element)) → Stream<RawSocketEvent>
  Forwards data events while `test` is successful. [...]
  inherited
timeout(Duration timeLimit, {void onTimeout(EventSink<RawSocketEvent> sink)}) → Stream<RawSocketEvent>
  Creates a new stream with the same events as this stream. [...]
  inherited
toList() → Future<List<RawSocketEvent>>
  Collects all elements of this stream in a List. [...]
  inherited
toSet() → Future<Set<RawSocketEvent>>
  Collects the data of this stream in a Set. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
transform<S>(StreamTransformer<RawSocketEvent, S> streamTransformer) → Stream<S>
  Applies `streamTransformer` to this stream. [...]
  inherited
where(bool test(RawSocketEvent event)) → Stream<RawSocketEvent>
  Creates a new stream from this stream that discards some elements. [...]
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator. [...]
  inherited

## Static Methods

bind(dynamic host, int port, {bool reuseAddress: true, bool reusePort: false, int ttl: 1}) → Future<RawDatagramSocket>
  Binds a socket to the given `host` and the `port`. [...]