private TcpClient CreateChannel(int index) { CatServer server = _mClientConfig.Servers[index]; if (!server.Enabled) { return(null); } TcpClient socket = new TcpClient(); socket.NoDelay = true; socket.ReceiveTimeout = 2 * 1000; // 2 seconds string ip = server.Ip; int port = server.Port; PureCat.Util.Logger.Info("Connecting to server({0}:{1}) ...", ip, port); try { socket.Connect(ip, port); if (socket.Connected) { PureCat.Util.Logger.Info("Connected to server({0}:{1}).", ip, port); return(socket); } PureCat.Util.Logger.Error("Failed to connect to server({0}:{1}).", ip, port); } catch (Exception e) { PureCat.Util.Logger.Error( "Failed to connect to server({0}:{1}). Error: {2}.", ip, port, e.Message ); } return(null); }
public void RandomServer() { if (_server == null || _server.Count < 2) { return; } lock (_lock) { int k = 0; int index = 0; CatServer tmpServer = null; for (int i = 0; i < _server.Count * 3; i++) { index = i % _server.Count; k = _mRandom.Next(_server.Count); if (k != index) { tmpServer = _server[index]; _server[index] = _server[k]; _server[k] = tmpServer; } } } }