createTcpConnect function

Future<ConnectionI> createTcpConnect(
  1. IPEndpoint endpoint
)

Connect to the Endpoint

Implementation

Future<ConnectionI> createTcpConnect(IPEndpoint endpoint) async {
  final c = Completer<ConnectionI>();
  //
  void Function(IPEndpoint) doConnect = (endpoint) {
    Socket.connect(endpoint.addressList[0], endpoint.port).then((socket) {
      final tc = TcpConnection(endpoint: endpoint, socket: socket)..init();
      c.complete(tc);
    });
  };

  if (endpoint.addressList.isEmpty) {
    endpoint.resolve().then((x) {
      doConnect(endpoint);
    });
  } else {
    doConnect(endpoint);
  }

  return c.future;
}