# Socket class

A high-level class for communicating over a TCP socket.

The Socket exposes both a Stream and a IOSink interface, making it ideal for using together with other Streams.

Implemented types
  - Stream<List<int>>
  - IOSink
Implementers
  - SecureSocket

## Constructors

Socket()

## Properties

address → InternetAddress
  Returns the InternetAddress used to connect this socket.
  read-only
done → Future
  Get a future that will complete when the consumer closes, or when an error occurs. This future is identical to the future returned by close.
  read-only, override
port → int
  Returns the port used by this socket.
  read-only
remoteAddress → InternetAddress
  Returns the remote InternetAddress connected to by this socket.
  read-only
remotePort → int
  Returns the remote port connected to by this socket.
  read-only
encoding ↔ Encoding
  The Encoding used when writing strings. Depending on the underlying consumer this property might be mutable.
  read / write, inherited
first → Future<List<int>>
  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<List<int>>
  The last element of this stream. [...]
  read-only, inherited
length → Future<int>
  The number of elements in this stream. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited
single → Future<List<int>>
  The single element of this stream. [...]
  read-only, inherited

## Methods

close() → Future
  Close the target consumer. [...]
  override
destroy() → void
  Destroy the socket in both directions. Calling destroy will make the send a close event on the stream and will no longer react on data being piped to it. [...]
getRawOption(RawSocketOption option) → Uint8List
  Use getRawOption to get low level information about the RawSocket. See RawSocketOption for available options. [...]
setOption(SocketOption option, bool enabled) → bool
  Use setOption to customize the RawSocket. See SocketOption for available options. [...]
setRawOption(RawSocketOption option) → void
  Use setRawOption to customize the RawSocket. See RawSocketOption for available options. [...]
add(List<int> data) → void
  Adds byte `data` to the target consumer, ignoring encoding. [...]
  inherited
addError(Object error, [ StackTrace stackTrace ]) → void
  Passes the error to the target consumer as an error event. [...]
  inherited
addStream(Stream<List<int>> stream) → Future
  Adds all elements of the given `stream` to `this`. [...]
  inherited
any(bool test(T element)) → Future<bool>
  Checks whether `test` accepts any element provided by this stream. [...]
  inherited
asBroadcastStream({void onListen(StreamSubscription<T> subscription), void onCancel(StreamSubscription<T> subscription) }) → Stream<List<int>>
  Returns a multi-subscription stream that produces the same events as this. [...]
  inherited
asyncExpand<E>(Stream<E> convert(T event)) → Stream<E>
  Transforms each element into a sequence of asynchronous events. [...]
  inherited
asyncMap<E>(FutureOr<E> convert(T 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
contains(Object needle) → Future<bool>
  Returns whether `needle` occurs in the elements provided by this stream. [...]
  inherited
distinct([bool equals(T previous, T next) ]) → Stream<List<int>>
  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<List<int>>
  Returns the value of the `index`th data event of this stream. [...]
  inherited
every(bool test(T element)) → Future<bool>
  Checks whether `test` accepts all elements provided by this stream. [...]
  inherited
expand<S>(Iterable<S> convert(T element)) → Stream<S>
  Transforms each element of this stream into a sequence of elements. [...]
  inherited
firstWhere(bool test(T element), { List<int> orElse() }) → Future<List<int>>
  Finds the first element of this stream matching `test`. [...]
  inherited
flush() → Future
  Returns a Future that completes once all buffered data is accepted by the underlying StreamConsumer. [...]
  inherited
fold<S>(S initialValue, S combine(S previous, T element)) → Future<S>
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
forEach(void action(T element)) → Future
  Executes `action` on each element of this stream. [...]
  inherited
handleError(Function onError, { bool test(dynamic error) }) → Stream<List<int>>
  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
lastWhere(bool test(T element), { List<int> orElse() }) → Future<List<int>>
  Finds the last element in this stream matching `test`. [...]
  inherited
listen(void onData(T event), { Function onError, void onDone(), bool cancelOnError }) → StreamSubscription<List<int>>
  Adds a subscription to this stream. [...]
  inherited
map<S>(S convert(T 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<List<int>> streamConsumer) → Future
  Pipes the events of this stream into `streamConsumer`. [...]
  inherited
reduce(List<int> combine(T previous, T element)) → Future<List<int>>
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
singleWhere(bool test(T element), { List<int> orElse() }) → Future<List<int>>
  Finds the single element in this stream matching `test`. [...]
  inherited
skip(int count) → Stream<List<int>>
  Skips the first `count` data events from this stream. [...]
  inherited
skipWhile(bool test(T element)) → Stream<List<int>>
  Skip data events from this stream while they are matched by `test`. [...]
  inherited
take(int count) → Stream<List<int>>
  Provides at most the first `count` data events of this stream. [...]
  inherited
takeWhile(bool test(T element)) → Stream<List<int>>
  Forwards data events while `test` is successful. [...]
  inherited
timeout(Duration timeLimit, { void onTimeout(EventSink<T> sink) }) → Stream<List<int>>
  Creates a new stream with the same events as this stream. [...]
  inherited
toList() → Future<List<List<int>>>
  Collects all elements of this stream in a List. [...]
  inherited
toSet() → Future<Set<List<int>>>
  Collects the data of this stream in a Set. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
transform<S>(StreamTransformer<List<int>, S> streamTransformer) → Stream<S>
  Applies `streamTransformer` to this stream. [...]
  inherited
where(bool test(T event)) → Stream<List<int>>
  Creates a new stream from this stream that discards some elements. [...]
  inherited
write(Object obj) → void
  Converts `obj` to a String by invoking Object.toString and adds the encoding of the result to the target consumer. [...]
  inherited
writeAll(Iterable objects, [ String separator = "" ]) → void
  Iterates over the given `objects` and writes them in sequence. [...]
  inherited
writeCharCode(int charCode) → void
  Writes the character of `charCode`. [...]
  inherited
writeln([Object obj = "" ]) → void
  Converts `obj` to a String by invoking Object.toString and writes the result to `this`, followed by a newline. [...]
  inherited

## Operators

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

## Static Methods

connect(dynamic host, int port, { dynamic sourceAddress, Duration timeout }) → Future<Socket>
  Creates a new socket connection to the host and port and returns a Future that will complete with either a Socket once connected or an error if the host-lookup or connection failed. [...]
startConnect(dynamic host, int port, { dynamic sourceAddress }) → Future<ConnectionTask<Socket>>
  Like connect, but returns a Future that completes with a ConnectionTask that can be cancelled if the Socket is no longer needed.