我正在测试设备,要测试的项目之一是他们说我可以根据需要连接尽可能多的设备。显然有一个限制,但这是什么。我以为我可以将一个简单的应用程序放在一起,以便仅与设备建立连接。
我在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();
}
}
答案 0 :(得分:2)
您需要调查列表和其他集合。
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();
}
}