⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socks5.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.CommLayer.SocksSipConnection
{
    using Imps.Client.Resource;
    using System;
    using System.Net.Sockets;

    internal sealed class Socks5 : SocksBase
    {
        public Socks5(SocksSipConnectionOption option) : base(option)
        {
        }

        protected override void ConsultToProxy(string host, int port)
        {
            try
            {
                QueryMethodSocks5Message message;
                if (base.Option.UserName.Length == 0)
                {
                    SocksMethod[] methods = new SocksMethod[1];
                    message = new QueryMethodSocks5Message(methods);
                }
                else
                {
                    SocksMethod[] methodArray2 = new SocksMethod[2];
                    methodArray2[1] = SocksMethod.Password;
                    message = new QueryMethodSocks5Message(methodArray2);
                }
                ReplyQueryMethodSocks5Message message2 = ReplyQueryMethodSocks5Message.Parse(base.SendSocksMessage(message));
                if (message2.Method == SocksMethod.Password)
                {
                    string username = base.Option.UserName;
                    string password = base.Option.Password;
                    PasswordMethodSocks5Message message3 = new PasswordMethodSocks5Message(username, password);
                    if (!ReplyPasswordMethodSocks5Message.Parse(base.SendSocksMessage(message3)).IsSuccessed)
                    {
                        throw new SocksConnectionException("用户名不存在或密码错误", SocksConnectionErrorCode.PasswordError);
                    }
                }
                else if (message2.Method != SocksMethod.NoAuth)
                {
                    throw new SocksConnectionException("代理服务器不支持用户名/密码验证方式", SocksConnectionErrorCode.PasswordAuthNotSupported);
                }
                ConnectToServerSocks5Message message5 = new ConnectToServerSocks5Message(host, port);
                if (!ReplyRequirmentSocks5Message.Parse(base.SendSocksMessage(message5)).IsSuccessed)
                {
                    throw new SocksConnectionException("代理服务器与最终服务器的连接失败", SocksConnectionErrorCode.ServerFailure);
                }
                base.RaiseConnectedEvent();
            }
            catch (SocketException exception)
            {
                base.RaiseFailedEvent(new SocksConnectionException("在协商过程中出现错误", exception, SocksConnectionErrorCode.ServerFailure));
            }
            catch (SocksConnectionException exception2)
            {
                base.RaiseFailedEvent(exception2);
            }
            catch (Exception exception3)
            {
                base.RaiseFailedEvent(new SocksConnectionException("与代理服务器的协商过程失败", exception3, SocksConnectionErrorCode.ServerFailure));
            }
        }

        public override string ToString()
        {
            return StringTable.ClientCommLayerString.Socks5Proxy;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -