2

我正在尝试在 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 值?如果它是假的,那么我需要让用户知道。

我的第二个问题是:端口测试代码是否正确?

我的第三个问题是:我是否正确地认为我可能需要在防火墙中打开该端口。

4

0 回答 0