从同一台 PC 多次连接到相同的 IP 地址和端口

Connecting to the same IP address and port many times from the same PC

我正在测试一个设备,要测试的项目之一是他们说我可以根据需要与它建立尽可能多的连接。显然有一个限制,但它是什么。我想我会把一个简单的应用放在一起来连接到设备。

我发现在 c# 中建立连接很容易,所以我的理论是给每个连接一个唯一的名称,例如tcpclnt_1、tcpclnt_2、tcpclnt_3等

我从一个连接开始,效果很好。我的问题是我可以对每个名称进行硬编码,这样我就可以声明

public TcpClient tcpclnt_1 = new TcpClient();
public TcpClient tcpclnt_2 = new TcpClient();

但这不是动态的。下面是一些代码,我在其中概述了我正在尝试做的事情。它不会工作,因为我找不到将每个 tcpclnt_x 动态更改为唯一名称的方法。我什至可能没有以正确的方式执行此操作,所以关于如何多次连接到同一设备有什么想法吗?

 public TcpClient tcpclnt_x = new TcpClient();
 int iterations = Decimal.ToInt32(numupdown_iterations.Value);

        private void btn_creatConnections_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < iterations; i++)
            {
                tcpclnt_x.Connect("192.168.127.254", 721);
            }

        }

        private void btn_delete_connections_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < iterations; i++)
            {
                tcpclnt_x.Close();
            }
        }

您需要调查列表和其他集合。

public List<TcpClient> tcpclnts = new List<TcpClient>();
int iterations = Decimal.ToInt32(numupdown_iterations.Value);

    private void btn_creatConnections_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < iterations; i++)
        {
            var client = new TcpClient();
            client.Connect("192.168.127.254", 721);
            tcpclnts.Add(client);
        }

    }

    private void btn_delete_connections_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < iterations; i++)
        {
            tcpclnts[x].Close();
        }
    }