5
我试图启动一个进程,并告诉它使用一个未使用的TCP端口。不幸的是,我开始的二进制文件不会探测未使用的端口。有没有一种体面的方式让我探测Dart中的端口,以便我可以用它作为我的流程的参数?如何在Dart中找到未使用的TCP端口?
我能想到的最好的方法是创建一个端口为0的ServerSocket
,然后关闭套接字并使用它的端口,但这对我来说似乎很难受。
任何人都有更好的方法吗?
我试图启动一个进程,并告诉它使用一个未使用的TCP端口。不幸的是,我开始的二进制文件不会探测未使用的端口。有没有一种体面的方式让我探测Dart中的端口,以便我可以用它作为我的流程的参数?如何在Dart中找到未使用的TCP端口?
我能想到的最好的方法是创建一个端口为0的ServerSocket
,然后关闭套接字并使用它的端口,但这对我来说似乎很难受。
任何人都有更好的方法吗?
我会添加我的'黑客'作为答案,因为我想不出另一种方式,它似乎工作得很好。
这是我的getUnusedPort()
功能:
Future<int> getUnusedPort() {
return ServerSocket.bind().then((socket) {
var port = socket.port;
socket.close();
return port;
});
}