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

📄 sgipconfig.cs

📁 联通的SGIP发送代码
💻 CS
字号:
/* jll(2005)版权所有,保留所有权力
 * 文件名:SgipConfig.cs
 * 用  途:用于读取sgip的配置信息,目前从可执行文件下的sgipConfig.ini中读取
 * 作  者:jll
 * 完成日期:2005年8月2日
 * 修订记录:
 */
using System;
using System.Collections.Generic;
using System.Text;

using System.Net;

namespace JLL.SGIP
{
    public class SgipConfig
    {
        private static IniFile _ini = new IniFile(SgipHelper.GetCurrentAssemblyPath() + "SgipConfig.ini");

        /// <summary>
        /// 接收到的最大的数据块
        /// </summary>
        public const int MaxBufferCount = 4096; //4k, 4096

        public class SPConfig
        {
            private string _spNumber;
            private uint _nodeID;
            private string _corpID;
            private string _userName;
            private string _passWord;

            public SPConfig()
            {
                _spNumber = _ini.ReadString("sp", "SPNumber", "").Trim();
                _nodeID = Convert.ToUInt32(_ini.ReadString("sp", "NodeID", "0"));
                _corpID = _ini.ReadString("sp", "CorpID", "").Trim();
                _userName = _ini.ReadString("sp", "UserName", "").Trim();
                _passWord = _ini.ReadString("sp", "Password", "").Trim();
            }

            /// <summary>
            /// sp接入代码,即服务号=特服号
            /// </summary>
            public string SPNumber
            {
                get { return _spNumber; }
            }

            /// <summary>
            /// sp的结点编号, 也即指SPID
            /// </summary>
            public uint NodeID
            {
                get { return _nodeID; }
            }

            /// <summary>
            /// sp企业代码
            /// </summary>
            public string CorpID
            {
                get { return _corpID; }
            }

            /// <summary>
            /// 联通smg分配的用户名
            /// </summary>
            public string UserName
            {
                get { return _userName; }
            }

            /// <summary>
            /// 联通smg分配的用户密码
            /// </summary>
            public string Password
            {
                get { return _passWord; }
            }
        }

        /// <summary>
        /// 作为服务器端配置的基类
        /// </summary>
        public class ServerBaseConfig
        {
            private IPAddress _ip;
            private int _port;
            private int _maxConnection;
            private int _maxWaitAnswerCommand;
            private int _answerTimeout;
            private int _idleTimeout;

            public ServerBaseConfig(string strSection)
            {
                _ip = IPAddress.Parse(_ini.ReadString(strSection, "IP", "127.0.0.1").Trim());
                _port = _ini.ReadInt(strSection, "Port", 8801);
                _maxConnection = _ini.ReadInt(strSection, "MaxConnection", 3);
                _maxWaitAnswerCommand = _ini.ReadInt(strSection, "MaxWaitAnswerCommand", 32);
                _answerTimeout = _ini.ReadInt(strSection, "AnswerTimeOut", 30);
                _idleTimeout = _ini.ReadInt(strSection, "IdleTimeOut", 60);
            }

            /// <summary>
            /// IP地址
            /// </summary>
            public IPAddress IP
            {
                get { return _ip; }
            }

            /// <summary>
            /// 端口
            /// </summary>
            public int Port
            {
                get { return _port; }
            }

            /// <summary>
            /// 一个用户所允许建立的最多socket连接数
            /// </summary>
            public int MaxConnection
            {
                get { return _maxConnection; }
            }

            /// <summary>
            /// 一个连接所允许的最多的待应答命令数
            /// </summary>
            public int MaxWaitAnswerCommand
            {
                get { return _maxWaitAnswerCommand; }
            }

            /// <summary>
            /// 命令应答的最长时限,以秒为单位
            /// </summary>
            public int AnswerTimeOut
            {
                get { return _answerTimeout; }
            }

            /// <summary>
            /// 客户端连接的最大空闲时间,超过则被断开, 以秒为单位
            /// </summary>
            public int IdleTimeOut
            {
                get { return _idleTimeout; }
            }
        }

        public class SMGConfig: ServerBaseConfig
        {
            public SMGConfig():base("SMG")
            {
            }
        }

        public class SubmitConfig: ServerBaseConfig
        {
            public SubmitConfig():base("Submit")
            {
            }
        }

        public class DeliverConfig: ServerBaseConfig
        {
            public DeliverConfig():base("Deliver")
            {
            }
        }

        public class DatabaseConfig
        {
            private string _connectString;
            public DatabaseConfig()
            {
                _connectString = _ini.ReadString("Database", "ConnectionString", "");
            }

            /// <summary>
            /// 数据库的连接字符串
            /// </summary>
            public string ConnectionString
            {
                get { return _connectString; }
            }

        }

        private static SPConfig _sp = new SPConfig();
        /// <summary>
        /// 用关sp的一些配置信息
        /// </summary>
        public static SPConfig SP
        {
            get { return _sp; }
        }

        private static SMGConfig _smg = new SMGConfig();
        /// <summary>
        /// 有关服务器(联通smg)的配置信息
        /// </summary>
        public static SMGConfig SMG
        {
            get { return _smg; }
        }

        private static SubmitConfig _submit = new SubmitConfig();
        /// <summary>
        /// 配置监听二级sp的submit等命令的信息
        /// </summary>
        public static SubmitConfig Submit
        {
            get { return _submit; }
        }

        private static DatabaseConfig _db = new DatabaseConfig();
        /// <summary>
        /// 对数据库的配置,如连接字符串
        /// </summary>
        public static DatabaseConfig Database
        {
            get { return _db; }
        }

        private static DeliverConfig _deliver = new DeliverConfig();
        /// <summary>
        /// 配置监听smg的deliver、report命令的信息
        /// </summary>
        public static DeliverConfig Deliver
        {
            get { return _deliver; }
        }
    }
}

⌨️ 快捷键说明

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