discoverBridgeServers function

Future<List<BridgeServerInfo>> discoverBridgeServers({
  1. String host = 'localhost',
  2. List<int> ports = const [19836, 19837, 19838, 19839, 19840],
  3. Duration timeout = const Duration(seconds: 2),
})

Discover running bridge servers on common ports.

Attempts to connect to a range of ports and returns any that respond with a valid handshake.

Implementation

Future<List<BridgeServerInfo>> discoverBridgeServers({
  String host = 'localhost',
  List<int> ports = const [19836, 19837, 19838, 19839, 19840],
  Duration timeout = const Duration(seconds: 2),
}) async {
  final results = <BridgeServerInfo>[];
  final futures = <Future<void>>[];

  for (final port in ports) {
    futures.add(
      _probePort(host, port, timeout)
          .then((info) {
            if (info != null) results.add(info);
          })
          .catchError((Object _) {
            // Port not available — skip.
          }),
    );
  }

  await Future.wait(futures);
  return results;
}