📄 sgipconfig.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 + -