Подключение к одному IP-адресу и порту много раз с одного компьютера - PullRequest
0 голосов
/ 11 апреля 2019

Я тестирую устройство, и один из тестируемых элементов - они говорят, что я могу иметь столько подключений к нему, сколько захочу. Очевидно, что есть предел, но что это такое. Я думал, что соберу простое приложение, чтобы просто подключиться к устройству.

Я считаю, что в 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();
            }
        }

1 Ответ

2 голосов
/ 11 апреля 2019

Вам нужно исследовать списки и другие коллекции.

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();
        }
    }
...