📄 smgppacket.cs
字号:
string str_Filename="Smgp_submit"+DateTime.Now.ToString("yyyyMMddHH")+".log";
string strw;
if (!File.Exists(str_Filename))
{
StreamWriter sw = File.CreateText(str_Filename);
for( int i=0;i<str_arr.Length;i++)
{
strw=DateTime.Now.ToString()+" "+str_arr[i];
sw.WriteLine(strw);
sw.Flush();
}
sw.Close();
}
else
{
StreamWriter sw = File.AppendText(str_Filename);
for(int i=0;i<100;i++)
{
strw=DateTime.Now.ToString()+" "+str_arr[i];
sw.WriteLine(strw);
sw.Flush();
}
sw.Close();
}
}
public void iniRead()
{
}
public void logWrite_netComm(string str_logtxt)
{
}
public void logWrite_DbComm(string str_logtxt)
{}
public void logWrite_Submit(string str_logtxt)
{}
public void logWrite_Deliver(string str_logtxt)
{}
}
public class IniFile
{
public string path;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,string val,string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,string def, StringBuilder retVal,
int size,string filePath);
/// <summary>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)
{
path = INIPath;
}
/// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="Value"></PARAM>
/// Value Name
public void IniWriteValue(string Section,string Key,string Value)
{
WritePrivateProfileString(Section,Key,Value,this.path);
}
/// <summary>
/// Read Data Value From the Ini File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
///
public string IniReadValue(string Section,string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section,Key,"",temp,
255, this.path);
return temp.ToString();
}
}
}
namespace n_netComm
{
/// <summary>
/// NetComm 的摘要说明。
/// 网络通讯类,负责socket的连接,send,recv
/// </summary>
public class NetComm
{
public TcpClient tcpclt;
public NetworkStream netStream;
public uint ui_seqid;
public NetComm()
{
//
// TODO: 在此处添加构造函数逻辑
//
tcpclt=new TcpClient();
ui_seqid=getNowseqid();
}
public static uint getNowseqid()
{
//根据现在的时间,生成一个基础流水号
DateTime dt=DateTime.Now;
string s= dt.Month.ToString().PadLeft(2, '0');
s += dt.Day.ToString().PadLeft(2, '0');
s += dt.Hour.ToString().PadLeft(2, '0');
s += dt.Minute.ToString().PadLeft(2, '0');
s += dt.Second.ToString().PadLeft(2, '0');
return UInt32.Parse(s);
}
public int net_Conn(string str_ServerIP,int str_ServerPort)
{
// socket连接成功返回0,失败返回-1
try
{
tcpclt.Connect(str_ServerIP,str_ServerPort);
netStream=tcpclt.GetStream();
return 0;
}
catch
{
return -1;
}
}
public int SocketClose()
{
// socket关闭成功返回0,失败返回-1
try
{
this.netStream.Close();
tcpclt.Close();
return 0;
}
catch
{
return -1;
}
}
public int smgp_send(byte[] buffer,int offset,int size)
{
lock(this)
{
try
{
netStream.Write(buffer,offset,size);
return 0;
}
catch
{
return -1;
}
}
}
public int smgp_recv(byte[] buffer,int offset,int size)
{
//recv函数不用锁,是为了防止RECV操作造成的阻塞
try
{
return netStream.Read(buffer,offset,size);
}
catch
{
return -1;
}
}
}
}
namespace n_sqldb
{
/// <summary>
/// SQLConn_smgp 的摘要说明。
/// 负责与SQLSERVER数据库连接的类
/// </summary>
public class SQLDB
{
public SqlConnection Conn_smgp=new SqlConnection();
public n_inilog.RecLog recordlog=new n_inilog.RecLog();
public SqlDataAdapter adp=new SqlDataAdapter();
public DataSet ds_Submit =new DataSet();
public SqlCommandBuilder bd;
public SQLDB(string str_Server,string str_User,string str_Pwd,string str_Database)
{
//
// TODO: 在此处添加构造函数逻辑
//
string str_Conn="Data Source=" + str_Server + ",1433;Network Library=DBMSSOCN;Initial Catalog=" + str_Database + ";User ID=" + str_User + ";Password=" + str_Pwd + ";";
this.Conn_smgp.ConnectionString=str_Conn;
Conn_smgp.Open();
bd=new SqlCommandBuilder(adp);
}
public void dbclose()
{
Conn_smgp.Close();
}
public int DBConnection(string str_Server,string str_User,string str_Pwd,string str_Database)
{
//描述:建立与数据库的连接
//输入:数据库服务器、用户名、密码,数据库名
//输出:0连接成功,其他各种失败的情况
//创建人:李文达
//创建日期:2007-05-09
Conn_smgp=new SqlConnection();
string str_Conn="Data Source=" + str_Server + ",1433;Network Library=DBMSSOCN;Initial Catalog=" + str_Database + ";User ID=" + str_User + ";Password=" + str_Pwd + ";";
this.Conn_smgp.ConnectionString=str_Conn;
try
{
this.Conn_smgp.Open();
return 0;
}
catch(Exception ex)
{
this.recordlog.WriteFile(ex.Message);
return -1;
}
}
public int UpdateData()
{
// 内存表处理完以后,更新到数据库表
try
{
adp.Update(ds_Submit,"presubmit");
return 0;
}
catch(Exception ex)
{
this.recordlog.WriteFile(ex.Message);
return -1;
}
}
/* public int InsertData(string str_Phone,string str_Msg,string str_Status)
{
System.Data.SqlClient.SqlCommand cmd_Insert=new SqlCommand();
cmd_Insert.CommandText="insert into ts_send(phone,msg,status) "
+" values('"+ str_Phone +"','"+str_Msg+"',"+str_Status+")";
cmd_Insert.Connection=this.Conn_smgp;
return cmd_Insert.ExecuteNonQuery();
}
*/
public int InsertMT(string mtseqid,
int SubType,
int NeedReport,
int Priority,
string ServiceID,
string FeeType,
string FeeCode,
string FixCode,
int MsgFormat,
string ValidTime,
string AtTime,
string SrcTermID,
string ChargeTermID,
int DestTermIDCount,
string DestTermID,
string MsgContent,
string Reserve,
string MsgID,
int Status,
string fromcp)
{
//Console.WriteLine("进入MT函数");
System.Data.SqlClient.SqlCommand cmd_mt=new SqlCommand();
cmd_mt.Connection=this.Conn_smgp;
cmd_mt.CommandText="insert into ts_smgp_submit "
+"(subtype,needreport,priority,serviceid,feetype,feecode,fixcode,msgformat,validtime,"
+"attime,srctermid,chargetermid,desttermid,msgcontent,reserve,requesttime,seqid,msgid,status,fromcp)"
+" values ("+ SubType +","+ NeedReport +","+ Priority +",'"+ ServiceID +"','" + FeeType + "','" + FeeCode + "','"
+ FixCode + "',"+ MsgFormat +",'"+ ValidTime +"','"+ AtTime +"','" + SrcTermID + "','"+ ChargeTermID +"','"
+ DestTermID + "','"+ MsgContent +"','"+ Reserve +"',getdate(),"+ mtseqid +",'"+ MsgID +"',"+ Status +",'"+fromcp+"')";
//Console.WriteLine(cmd_mt.CommandText.ToString());
try
{
cmd_mt.ExecuteNonQuery();
return 0;
}
catch(Exception ex)
{
Console.WriteLine("Insert ts_smgp_submit error:{0}",ex.Message.ToString());
return -1;
}
}
public int getPreSubmit(string pergroup)
{
//发送表绑定
//输入:无
//输出:表内数据条数
adp.SelectCommand=new SqlCommand();
adp.SelectCommand.CommandText="select top "+ pergroup +" * from ti_smgp_submit where priority>0 order by priority desc";
adp.SelectCommand.Connection=this.Conn_smgp;
adp.Fill(ds_Submit,"presubmit");
int vcount=ds_Submit.Tables["presubmit"].Rows.Count;
return vcount;
}
public int InsertDeliver(string MsgID,int MsgFormat,string RecvTime,string SrcTermID,string DestTermID,int MsgLength,string MsgContent)
{
System.Data.SqlClient.SqlCommand cmd_dlv=new SqlCommand();
cmd_dlv.Connection=this.Conn_smgp;
cmd_dlv.CommandText="insert into ts_smgp_deliver(msgid,msgformat,recvtime,srctermid,desttermid,msglength,msgcontent,reserve) "
+ "values('" + MsgID + "'," + MsgFormat + ",'" + RecvTime + "','" + SrcTermID + "','" + DestTermID + "'," + MsgLength + ",'" + MsgContent + "','')";
//Console.WriteLine(cmd_mt.CommandText.ToString());
try
{
cmd_dlv.ExecuteNonQuery();
cmd_dlv.Dispose();
return 0;
}
catch(Exception ex)
{
Console.WriteLine("Insert ts_smgp_deliver error:{0}",ex.Message.ToString());
cmd_dlv.Dispose();
return -1;
}
}
public int InsertReport(string MsgID,string Sub,string Dlvrd,string Submit_date,string Done_date,string Stat,string Err,string Text)
{
System.Data.SqlClient.SqlCommand cmd_rpt=new SqlCommand();
cmd_rpt.Connection=this.Conn_smgp;
Text=Text.Replace("'","");
cmd_rpt.CommandText="insert into ts_smgp_report(msgid,sub,dlvrd,submit_date,done_date,stat,err,text)"
+ "values('" + MsgID + "','" + Sub + "','" + Dlvrd + "','" + Submit_date + "','" + Done_date + "','" + Stat + "','" + Err + "','" + Text + "')";
try
{
cmd_rpt.ExecuteNonQuery();
return 0;
}
catch(Exception ex)
{
Console.WriteLine("记录Report数据出错:{0}",ex.Message.ToString());
return -1;
}
}
}
}
namespace n_smgpconn
{
/// <summary>
/// SMGPConn 的摘要说明。
/// </summary>
public class SMGPConn
{
public n_netComm.NetComm netcon=new n_netComm.NetComm();
public n_sqldb.SQLDB sqldbr;
public n_sqldb.SQLDB sqldbw;
public uint mtseqid;
public bool _mtalive;
public bool _moalive;
public DataSet tempds;
public SMGPConn()
{
//
// TODO: 在此处添加构造函数逻辑
//
mtseqid=getNowseqid();
tempds=new DataSet();
tempds.Tables.Add("temptable");
tempds.Tables["temptable"].Columns.Add("SEQID");
tempds.Tables["temptable"].Columns.Add("SubType");
tempds.Tables["temptable"].Columns.Add("NeedReport");
tempds.Tables["temptable"].Columns.Add("Priority");
tempds.Tables["temptable"].Columns.Add("ServiceID");
tempds.Tables["temptable"].Columns.Add("FeeType");
tempds.Tables["temptable"].Columns.Add("FeeCode");
tempds.Tables["temptable"].Columns.Add("FixCode");
tempds.Tables["temptable"].Columns.Add("MsgFormat");
tempds.Tables["temptable"].Columns.Add("ValidTime");
tempds.Tables["temptable"].Columns.Add("AtTime");
tempds.Tables["temptable"].Columns.Add("SrcTermID");
tempds.Tables["temptable"].Columns.Add("ChargeTermID");
tempds.Tables["temptable"].Columns.Add("DestTermIDCount");
tempds.Tables["temptable"].Columns.Add("DestTermID");
tempds.Tables["temptable"].Columns.Add("MsgContent");
tempds.Tables["temptable"].Columns.Add("Reserve");
tempds.Tables["temptable"].Columns.Add("MsgID");
tempds.Tables["temptable"].Columns.Add("Status");
tempds.Tables["temptable"].Columns.Add("fromcp");
_moalive=true;
}
public void dbclose()
{
sqldbr.dbclose();
sqldbw.dbclose();
}
public int dbinit(string str_Server,string str_User,string str_Pwd,string str_Database)
{
try
{
sqldbr=new n_sqldb.SQLDB(str_Server,str_User,str_Pwd,str_Database);
sqldbw=new n_sqldb.SQLDB(str_Server,str_User,str_Pwd,str_Database);
return 0;
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
return -1;
}
}
public uint getNowseqid()
{
DateTime dt=DateTime.Now;
string s= dt.Month.ToString().PadLeft(2, '0');
s += dt.Day.ToString().PadLeft(2, '0');
s += dt.Hour.ToString().PadLeft(2, '0');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -