我正在尝试在 inno setup 中创建以下功能。
要求用户输入他们希望我的应用程序进行通信的端口。一旦他们进入一个端口,他们就可以点击一个检查按钮。这个检查按钮将运行一些代码来查看安装机器上的端口是否可用。
到目前为止,我可以为用户创建输入框以输入他们希望测试的端口。我有以下代码来测试端口是否可用。
int port = 456; //<--- This is your value
bool isAvailable = true;
// Evaluate current system tcp connections. This is the same information provided
// by the netstat command line application, just in .Net strongly-typed object
// form. We will look through the list, and if our port we would like to use
// in our TcpClient is occupied, we will set isAvailable to false.
IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
{
if (tcpi.LocalEndPoint.Port == port)
{
isAvailable = false;
break;
}
}
Console.WriteLine("Port is available");
我的第一个问题是:是否可以从端口测试代码返回到 inno setup 的 true 或 false 值?如果它是假的,那么我需要让用户知道。
我的第二个问题是:端口测试代码是否正确?
我的第三个问题是:我是否正确地认为我可能需要在防火墙中打开该端口。