• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Model.Server类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Shadowsocks.Model.Server的典型用法代码示例。如果您正苦于以下问题:C# Server类的具体用法?C# Server怎么用?C# Server使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Server类属于Shadowsocks.Model命名空间,在下文中一共展示了Server类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: CheckServer

 public static void CheckServer(Server server)
 {
     CheckPort(server.server_port);
     CheckPassword(server.password);
     CheckServer(server.server);
     CheckTimeout(server.timeout, Server.MaxServerTimeoutSec);
 }
开发者ID:FlyOverGFW,项目名称:shadowsocks-windows,代码行数:7,代码来源:Configuration.cs


示例2: SaveOldSelectedServer

        private bool SaveOldSelectedServer()
        {
            try
            {
                if (_lastSelectedIndex == -1 || _lastSelectedIndex >= _modifiedConfiguration.configs.Count)
                {
                    return true;
                }
                Server server = new Server
                {
                    server = IPTextBox.Text,
                    server_port = int.Parse(ServerPortTextBox.Text),
                    password = PasswordTextBox.Text,
                    method = EncryptionSelect.Text,
                    remarks = RemarksTextBox.Text
                };
                int localPort = int.Parse(ProxyPortTextBox.Text);
                Configuration.CheckServer(server);
                Configuration.CheckLocalPort(localPort);
                _modifiedConfiguration.configs[_lastSelectedIndex] = server;
                _modifiedConfiguration.localPort = localPort;

                return true;
            }
            catch (FormatException)
            {
                MessageBox.Show(I18N.GetString("Illegal port number format"));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return false;
        }
开发者ID:gaotong2055,项目名称:shadowsocks-windows,代码行数:34,代码来源:ConfigForm.cs


示例3: StatisticsStrategy

 public StatisticsStrategy(ShadowsocksController controller)
 {
     _controller = controller;
     var servers = controller.GetCurrentConfiguration().configs;
     var randomIndex = new Random().Next() % servers.Count();
     _currentServer = servers[randomIndex];  //choose a server randomly at first
     _timer = new Timer(ReloadStatisticsAndChooseAServer);
 }
开发者ID:YAIBA2,项目名称:shadowsocks-csharp,代码行数:8,代码来源:StatisticsStrategy.cs


示例4: AddServerBySSURL

 public bool AddServerBySSURL(string ssURL)
 {
     try
     {
         var server = new Server(ssURL);
         _config.configs.Add(server);
         _config.index = _config.configs.Count - 1;
         SaveConfig(_config);
         return true;
     }
     catch (Exception e)
     {
         Logging.LogUsefulException(e);
         return false;
     }
 }
开发者ID:qlq1104,项目名称:shadowsocks-csharp,代码行数:16,代码来源:ShadowsocksController.cs


示例5: ChooseNewServer

 /**
  * once failed, try after 5 min
  * and (last write - last read) < 5s
  * and (now - last read) <  5s  // means not stuck
  * and latency < 200ms, try after 30s
  */
 public void ChooseNewServer()
 {
     Server oldServer = _currentServer;
     List<ServerStatus> servers = new List<ServerStatus>(_serverStatus.Values);
     DateTime now = DateTime.Now;
     foreach (var status in servers)
     {
         // all of failure, latency, (lastread - lastwrite) normalized to 1000, then
         // 100 * failure - 2 * latency - 0.5 * (lastread - lastwrite)
         status.score =
             100 * 1000 * Math.Min(5 * 60, (now - status.lastFailure).TotalSeconds)
             -2 * 5 * (Math.Min(2000, status.latency.TotalMilliseconds) / (1 + (now - status.lastTimeDetectLatency).TotalSeconds / 30 / 10) +
             -0.5 * 200 * Math.Min(5, (status.lastRead - status.lastWrite).TotalSeconds));
         Logging.Debug(String.Format("server: {0} latency:{1} score: {2}", status.server.FriendlyName(), status.latency, status.score));
     }
     ServerStatus max = null;
     foreach (var status in servers)
     {
         if (max == null)
         {
             max = status;
         }
         else
         {
             if (status.score >= max.score)
             {
                 max = status;
             }
         }
     }
     if (max != null)
     {
         _currentServer = max.server;
         if (_currentServer != oldServer)
         {
             Console.WriteLine("HA switching to server: {0}", _currentServer.FriendlyName());
         }
         Logging.Debug(String.Format("choosing server: {0}", _currentServer.FriendlyName()));
     }
 }
开发者ID:snow9312,项目名称:shadowsocks-windows,代码行数:46,代码来源:HighAvailabilityStrategy.cs


示例6: ConnectCallback

        private void ConnectCallback(IAsyncResult ar)
        {
            Server server = null;
            if (closed)
            {
                return;
            }
            try
            {
                ServerTimer timer = (ServerTimer)ar.AsyncState;
                server = timer.Server;
                timer.Elapsed -= connectTimer_Elapsed;
                timer.Enabled = false;
                timer.Dispose();

                // Complete the connection.
                remote.EndConnect(ar);

                connected = true;

                Logging.Debug($"Socket connected to {remote.RemoteEndPoint}");

                var latency = DateTime.Now - _startConnectTime;
                IStrategy strategy = controller.GetCurrentStrategy();
                strategy?.UpdateLatency(server, latency);
                tcprelay.UpdateLatency(server, latency);

                StartPipe();
            }
            catch (ArgumentException)
            {
            }
            catch (Exception e)
            {
                if (server != null)
                {
                    IStrategy strategy = controller.GetCurrentStrategy();
                    if (strategy != null)
                    {
                        strategy.SetFailure(server);
                    }
                }
                Logging.LogUsefulException(e);
                RetryConnect();
            }
        }
开发者ID:KylinJ,项目名称:shadowsocks-windows,代码行数:46,代码来源:TCPRelay.cs


示例7: UpdateOutboundCounter

 public void UpdateOutboundCounter(Server server, long n)
 {
     _controller.UpdateOutboundCounter(server, n);
 }
开发者ID:KylinJ,项目名称:shadowsocks-windows,代码行数:4,代码来源:TCPRelay.cs


示例8: UpdateLatency

 public void UpdateLatency(Server server, int latency)
 {
     List<int> records;
     _latencyRecords.TryGetValue(server.Identifier(), out records);
     if (records == null)
     {
         records = new List<int>();
     }
     records.Add(latency);
     _latencyRecords[server.Identifier()] = records;
 }
开发者ID:CharlieQ1,项目名称:shadowsocks-windows,代码行数:11,代码来源:AvailabilityStatistics.cs


示例9: CreateRemote

 public void CreateRemote()
 {
     Server server = controller.GetAServer(IStrategyCallerType.TCP, (IPEndPoint)connection.RemoteEndPoint);
     if (server == null || server.server == "")
     {
         throw new ArgumentException("No server configured");
     }
     encryptor = EncryptorFactory.GetEncryptor(server.method, server.password, server.auth, false);
     this.server = server;
 }
开发者ID:KylinJ,项目名称:shadowsocks-windows,代码行数:10,代码来源:TCPRelay.cs


示例10: Clone

 public Server Clone()
 {
     Server ret = new Server();
     ret.server = (string)server.Clone();
     ret.server_port = server_port;
     ret.password = (string)password.Clone();
     ret.method = (string)method.Clone();
     ret.obfs = (string)obfs.Clone();
     ret.remarks = (string)remarks.Clone();
     ret.enable = enable;
     ret.udp_over_tcp = udp_over_tcp;
     ret.tcp_protocol = tcp_protocol;
     ret.obfs_udp = obfs_udp;
     return ret;
 }
开发者ID:a2232189,项目名称:shadowsocks-csharp,代码行数:15,代码来源:Server.cs


示例11: GetSSRemarksLinkForServer

 public string GetSSRemarksLinkForServer(Server server)
 {
     string parts = server.method + ":" + server.password + "@" + server.server + ":" + server.server_port + "#" + server.remarks;
     string base64 = System.Convert.ToBase64String(Encoding.UTF8.GetBytes(parts));
     return "ss://" + base64;
 }
开发者ID:jfc001,项目名称:shadowsocks-csharp,代码行数:6,代码来源:ShadowsocksController.cs


示例12: GetSSLinkForServer

 public string GetSSLinkForServer(Server server)
 {
     string parts = server.method + ":" + server.password + "@" + server.server + ":" + server.server_port;
     if (server.obfs != "plain")
         parts = server.obfs + ":" + parts;
     string base64 = System.Convert.ToBase64String(Encoding.UTF8.GetBytes(parts));
     return "ss://" + base64;
 }
开发者ID:yaoliyc,项目名称:shadowsocks-csharp,代码行数:8,代码来源:ShadowsocksController.cs


示例13: ReConnect

        public void ReConnect()
        {
            ResetTimeout(0);

            reconnectTimesRemain--;
            reconnectTimes++;

            lock (server)
            {
                server.ServerSpeedLog().AddDisconnectTimes();
                server.GetConnections().DecRef(this.connection);
            }

            if (reconnectTimes < 2)
            {
                server = this.getCurrentServer(true);
            }
            else
            {
                server = this.getCurrentServer(true, true);
            }

            CloseSocket(ref remote);
            CloseSocket(ref remoteUDP);
            if (remoteTDP != null)
            {
                try
                {
                    remoteTDP.Shutdown();
                    //remoteTDP.Close();
                }
                catch (Exception e)
                {
                    Logging.LogUsefulException(e);
                }
                remoteTDP = null;
            }
            if (obfs != null)
            {
                obfs.Dispose();
                obfs = null;
            }

            connectionShutdown = false;
            remoteShutdown = false;

            speedTester.sizeUpload = 0;
            speedTester.sizeDownload = 0;

            lastErrCode = 0;
            obfs = ObfsFactory.GetObfs(server.obfs);

            try
            {
                Connect();
            }
            catch (Exception e)
            {
                LogSocketException(e);
                if (!Logging.LogSocketException(server.remarks, server.server, e))
                    Logging.LogUsefulException(e);
                this.Close();
            }
        }
开发者ID:yaoliyc,项目名称:shadowsocks-csharp,代码行数:64,代码来源:Local.cs


示例14: UpdateLatency

 public void UpdateLatency(Server server, TimeSpan latency)
 {
     if (_config.availabilityStatistics)
     {
         new Task(() => availabilityStatistics.UpdateLatency(server, (int) latency.TotalMilliseconds)).Start();
     }
 }
开发者ID:dantmnf,项目名称:shadowsocks-windows,代码行数:7,代码来源:ShadowsocksController.cs


示例15: UpdateOutboundCounter

 public void UpdateOutboundCounter(Server server, long n)
 {
     Interlocked.Add(ref outboundCounter, n);
     if (_config.availabilityStatistics)
     {
         new Task(() => availabilityStatistics.UpdateOutboundCounter(server, n)).Start();
     }
 }
开发者ID:dantmnf,项目名称:shadowsocks-windows,代码行数:8,代码来源:ShadowsocksController.cs


示例16: ServerIndex

 public ServerIndex(int i, Server s)
 {
     index = i;
     this.server = s;
 }
开发者ID:GreyC,项目名称:shadowsocks-csharp,代码行数:5,代码来源:Configuration.cs


示例17: ICMPTest

        private async Task<ICMPResult> ICMPTest(Server server)
        {
            Logging.Debug("Ping " + server.FriendlyName());
            if (server.server == "") return null;
            var result = new ICMPResult(server);
            try
            {
                var IP =
                    Dns.GetHostAddresses(server.server)
                        .First(
                            ip =>
                                ip.AddressFamily == AddressFamily.InterNetwork ||
                                ip.AddressFamily == AddressFamily.InterNetworkV6);
                var ping = new Ping();

                foreach (var _ in Enumerable.Range(0, Repeat))
                {
                    try
                    {
                        var reply = await ping.SendTaskAsync(IP, TimeoutMilliseconds);
                        if (reply.Status.Equals(IPStatus.Success))
                        {
                            result.RoundtripTime.Add((int?) reply.RoundtripTime);
                        }
                        else
                        {
                            result.RoundtripTime.Add(null);
                        }

                        //Do ICMPTest in a random frequency
                        Thread.Sleep(TimeoutMilliseconds + new Random().Next()%TimeoutMilliseconds);
                    }
                    catch (Exception e)
                    {
                        Logging.Error($"An exception occured while eveluating {server.FriendlyName()}");
                        Logging.LogUsefulException(e);
                    }
                }
            }
            catch (Exception e)
            {
                Logging.Error($"An exception occured while eveluating {server.FriendlyName()}");
                Logging.LogUsefulException(e);
            }
            return result;
        }
开发者ID:CharlieQ1,项目名称:shadowsocks-windows,代码行数:46,代码来源:AvailabilityStatistics.cs


示例18: UpdateOutboundCounter

 public void UpdateOutboundCounter(Server server, long n)
 {
     long count;
     if (_outboundCounter.TryGetValue(server.Identifier(), out count))
     {
         count += n;
     }
     else
     {
         count = n;
         _lastOutboundCounter[server.Identifier()] = 0;
     }
     _outboundCounter[server.Identifier()] = count;
 }
开发者ID:CharlieQ1,项目名称:shadowsocks-windows,代码行数:14,代码来源:AvailabilityStatistics.cs


示例19: UpdateLatency

 public void UpdateLatency(Server server, TimeSpan latency)
 {
     _controller.UpdateLatency(server, latency);
 }
开发者ID:KylinJ,项目名称:shadowsocks-windows,代码行数:4,代码来源:TCPRelay.cs


示例20: ProxyConnectCallback

        private void ProxyConnectCallback(IAsyncResult ar)
        {
            Server server = null;
            if (_closed)
            {
                return;
            }
            try
            {
                var session = (AsyncSession<ProxyTimer>) ar.AsyncState;
                ProxyTimer timer = session.State;
                var destEndPoint = timer.DestEndPoint;
                server = timer.Server;
                timer.Elapsed -= proxyConnectTimer_Elapsed;
                timer.Enabled = false;
                timer.Dispose();

                var remote = session.Remote;

                // Complete the connection.
                remote.EndConnectProxy(ar);

                _proxyConnected = true;

                if (_config.isVerboseLogging)
                {
                    if (!(remote is DirectConnect))
                    {
                        Logging.Info($"Socket connected to proxy {remote.ProxyEndPoint}");
                    }
                }

                _startConnectTime = DateTime.Now;
                ServerTimer connectTimer = new ServerTimer(3000);
                connectTimer.AutoReset = false;
                connectTimer.Elapsed += destConnectTimer_Elapsed;
                connectTimer.Enabled = true;
                connectTimer.Session = session;
                connectTimer.Server = server;
                
                _destConnected = false;
                // Connect to the remote endpoint.
                remote.BeginConnectDest(destEndPoint, new AsyncCallback(ConnectCallback), new AsyncSession<ServerTimer>(session, connectTimer));
            }
            catch (ArgumentException)
            {
            }
            catch (Exception e)
            {
                Logging.LogUsefulException(e);
                RetryConnect();
            }
        }
开发者ID:DZLZHCODE,项目名称:shadowsocks-windows,代码行数:53,代码来源:TCPRelay.cs



注:本文中的Shadowsocks.Model.Server类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Requests.Query类代码示例发布时间:2022-05-26
下一篇:
C# Model.Configuration类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap