通过服务器和端口集合循环

  • 本文关键字:集合 循环 服务器 c# .net
  • 更新时间 :
  • 英文 :


我想循环通过服务器和端口(每个端口的3个)并尝试建立连接,一旦建立连接,我就可以继续前进代码..这是我拥有的。

        IRC_SETTINGS IRC; //3 servers & 3 ports.
        foreach (string SERVER in IRC.IRC_SERVERS)
        {
            try
            {
                ircSocket = new TcpClient(SERVER, PORT);
                break; //;when we have a working connection.
            }
            catch(Exception){}
        }

我猜这对服务器的一部分正常,但是我该如何同时通过端口循环呢?诸如foreach(字符串服务器,int端口..

您可以将它们放入单个数据结构(例如列表)中,并通过它们循环:

public class IrcServer
{
    public string Name { get; set; }
    public int Port { get; set; }
    // perhaps some methods
}
IList<IrcServer> servers = new List<IrcServer>();
foreach(IrcServer server in servers)
{
    // server.Name, server.Port
}

update

由于您有两个不同的数组(一个用于服务器名称,一个用于端口号),您可以使用 Merge 使用字典:

int[] ports = { 1, 2, 3 };
string[] servers = { "one", "two", "three" };
var serversWithPorts = servers.
    Zip(ports, (s, i) => new { s, i }).
    ToDictionary(i=> i.s, i => i.i);
foreach(var server in serversWithPorts)
{
    Console.WriteLine(server.Key + ":" + server.Value);
}

最新更新