2012-12-30 2 views
5

Ich versuche, einen Prozess zu starten und ihm zu sagen, einen nicht verwendeten TCP-Port zu verwenden. Leider wird die Binärdatei, die ich starte, nicht nach einem unbenutzten Port suchen. Gibt es einen anständigen Weg für mich, Ports in Dart zu untersuchen, so dass ich das als Argument für meinen Prozess verwenden kann?Wie kann ich einen nicht verwendeten TCP-Port in Dart finden?

Das beste, was ich mir vorstellen kann, ist eine ServerSocket mit einem Port von 0 zu erstellen, und dann schließen Sie den Socket und verwenden Sie es Port, aber das scheint Hacky für mich.

Jeder hat einen besseren Weg?

Antwort

2

Ich werde meinen 'Hack' als Antwort hinzufügen, weil ich nicht auf eine andere Weise denke, und es scheint ziemlich gut zu funktionieren.

Hier ist meine getUnusedPort() Funktion:

Future<int> getUnusedPort() { 
    return ServerSocket.bind().then((socket) { 
    var port = socket.port; 
    socket.close(); 
    return port; 
    }); 
}