csharpDemo.aspx.cs 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using System.Runtime.InteropServices;
  13. namespace CSDemo
  14. {
  15. /// <summary>
  16. /// WebForm3 的摘要说明。
  17. /// </summary>
  18. public partial class csharpDemo : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.Button Button1;
  21. [DllImport("MWGateway.dll")]//帐户登陆
  22. private static extern int MongateConnect(string ip ,int port,string account ,string pwd );
  23. [DllImport("MWGateway.dll")]//发送单向信息
  24. private static extern int MongateSendSms(int clientsock,string mobi,string note);
  25. [DllImport("MWGateway.dll")]//测试连接
  26. private static extern int MongateTestConn(int clientsock);
  27. [DllImport("MWGateway.dll")]//查询余额
  28. private static extern int MongateQueryBalance(int clientsocket);
  29. [DllImport("MWGateway.dll")]//查询使用
  30. private static extern int MongateQueryUsed(int clientsocket);
  31. [DllImport("MWGateway.dll")]//帐户充值
  32. private static extern int MongateRecharge(int clientsocket,string cardno,string cardpwd);
  33. [DllImport("MWGateway.dll")]//密码修改
  34. private static extern int MongateChangePwd(int clientsocket,string account,string oldpwd,
  35. string newpwd);
  36. [DllImport("MWGateway.dll")]//断开连接
  37. private static extern int MongateDisconnect(int clientsock);
  38. [DllImport("MWGateway.dll")]//接收增值信息
  39. private static extern int MongateVasGetSms(int clientsock, ref byte recvbuf );
  40. [DllImport("MWGateway.dll")]//发送增值双向信息
  41. private static extern int MongateVasSendSms(int clientsock,string feecode,string spno,
  42. string opercode,string linkid,string mobis,string msg,int icount);
  43. [DllImport("MWGateway.dll")]//接收客服信息
  44. private static extern int MongateCsGetSms(int clientsock, ref byte recvbuf );
  45. [DllImport("MWGateway.dll")]//发送客服双向信息
  46. private static extern int MongateCsSendSms(int clientsock,string mobi,string note,int icount,
  47. StringBuilder msgno);
  48. [DllImport("MWGateway.dll")]//读取状态报告
  49. private static extern int MongateCsGetStatusReport(int clientsock, ref byte recvbuf );
  50. #region Web 窗体设计器生成的代码
  51. override protected void OnInit(EventArgs e)
  52. {
  53. //
  54. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  55. //
  56. InitializeComponent();
  57. base.OnInit(e);
  58. }
  59. /// <summary>
  60. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  61. /// 此方法的内容。
  62. /// </summary>
  63. private void InitializeComponent()
  64. {
  65. }
  66. #endregion
  67. protected void BtnSend_Click(object sender, System.EventArgs e)
  68. {
  69. //发送信息
  70. if (Noconn()) return;
  71. int myrec,clientsock=Convert.ToInt16(Session["clientsock"]);
  72. if(CkVas.Checked ){
  73. myrec=MongateVasSendSms(clientsock,TxtFee.Text.Trim(),TxtSport.Text.Trim(),"00********",
  74. TxtLinkid.Text.Trim(),TxtPhone.Text.Trim(),TxtMsg.Text.Trim(),1);
  75. if(myrec==1) TxtInfo.Text="发送增值信息成功\r\n"+TxtInfo.Text;
  76. else TxtInfo.Text="发送增值信息失败\r\n"+TxtInfo.Text;
  77. }else if(CkKf.Checked ){
  78. StringBuilder strBld=new StringBuilder(40);
  79. myrec=MongateCsSendSms(clientsock,TxtPhone.Text.Trim(),TxtMsg.Text.Trim(),1,strBld);
  80. if(myrec==1) TxtInfo.Text="发送增值信息成功\r\n"+TxtInfo.Text;
  81. else TxtInfo.Text="发送增值信息失败\r\n"+TxtInfo.Text;
  82. TxtInfo.Text="信息编号:"+Convert.ToString(strBld)+"\r\n"+TxtInfo.Text;
  83. }else{
  84. myrec=MongateSendSms(clientsock,TxtPhone.Text.Trim(),TxtMsg.Text.Trim());
  85. if(myrec==1) TxtInfo.Text="发送单向信息成功\r\n"+TxtInfo.Text;
  86. else TxtInfo.Text="发送单向信息失败\r\n"+TxtInfo.Text;
  87. }
  88. }
  89. private void BtnState_Click(object sender, System.EventArgs e)
  90. {
  91. //读取状态报告
  92. if (Noconn()) return;
  93. int clientsock=Convert.ToInt16(Session["clientsock"]);
  94. byte[,] recv=new byte[500,255] ;
  95. byte[] buf=new byte[255];
  96. string Str;
  97. int num,i,k;
  98. if (clientsock > 0)
  99. {
  100. num = MongateCsGetStatusReport(clientsock, ref recv[0, 0]);
  101. if (num > 0)
  102. {
  103. for( i = 0;i<num;i++)
  104. {
  105. for( k = 0;k<254;k++)
  106. {
  107. buf[k] = recv[i, k];
  108. if (buf[k] == 0)break;
  109. }
  110. Str = System.Text.Encoding.GetEncoding("gb2312").GetString(buf).ToString();
  111. TxtInfo.Text ="状态报告:"+Str+"\r\n"+TxtInfo.Text;
  112. }
  113. }
  114. else TxtInfo.Text ="无状态报告\r\n"+TxtInfo.Text;
  115. }
  116. else TxtInfo.Text="网络连接已经断开,请重新登陆\r\n"+TxtInfo.Text;
  117. }
  118. protected void BtnRecv_Click(object sender, System.EventArgs e) {
  119. //接收用户信息
  120. if (Noconn()) return;
  121. int clientsock=Convert.ToInt16(Session["clientsock"]);
  122. byte[,] recv=new byte[500,255] ;
  123. byte[] buf=new byte[255];
  124. string Str;
  125. int num,i,k;
  126. if (CkKf.Checked)
  127. num = MongateCsGetSms(clientsock, ref recv[0, 0]);
  128. else
  129. num = MongateVasGetSms(clientsock, ref recv[0, 0]);
  130. if (num > 0) {
  131. for( i = 0;i<num;i++) {
  132. for( k = 0;k<254;k++) {
  133. buf[k] = recv[i, k];
  134. if (buf[k] == 0)break;
  135. }
  136. Str = System.Text.Encoding.GetEncoding("gb2312").GetString(buf).ToString();
  137. TxtInfo.Text="用户信息:"+Str+"\r\n"+TxtInfo.Text;
  138. }
  139. }
  140. else TxtInfo.Text="无用户信息\r\n"+TxtInfo.Text;
  141. }
  142. protected void BtnLogin_Click(object sender, System.EventArgs e)
  143. {
  144. //int clientsock=MongateConnect("61.242.89.115",8018,"13888888888","807778");
  145. int clientsock=MongateConnect(TxtIp.Text.Trim(),Convert.ToInt16(TxtPort.Text.Trim()),
  146. TxtAccount.Text.Trim(),TxtPwd.Text.Trim());
  147. Session["clientsock"]=clientsock;
  148. if (clientsock > 0){
  149. TxtInfo.Text ="登陆成功 句柄:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text;
  150. BtnDisConn.Enabled=true;
  151. BtnLogin.Enabled=false;
  152. }
  153. else TxtInfo.Text="登陆失败 返回:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text;
  154. }
  155. private void BtnFee_Click(object sender, System.EventArgs e)
  156. {
  157. //查费
  158. if (Noconn()) return;
  159. int clientsock=Convert.ToInt16(Session["clientsock"]);
  160. int myfee=-10;
  161. if (clientsock>0)
  162. {
  163. myfee=MongateQueryBalance(clientsock);
  164. if (myfee>0)
  165. TxtInfo.Text="查询短信余额成功:"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
  166. else
  167. TxtInfo.Text="查询短信余额失败:返回"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
  168. }
  169. else TxtInfo.Text="网络连接已经断开,请重新登陆\r\n"+TxtInfo.Text;
  170. }
  171. protected void Page_Load(object sender, System.EventArgs e)
  172. {
  173. CkClick(0);
  174. }
  175. protected void BtnUsed_Click(object sender, System.EventArgs e) {
  176. //查询使用
  177. if (Noconn()) return;
  178. int clientsock=Convert.ToInt16(Session["clientsock"]);
  179. int myfee=-10;
  180. if (clientsock>0) {
  181. myfee=MongateQueryUsed(clientsock);
  182. if (myfee>0)
  183. TxtInfo.Text="查询使用成功:"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
  184. else
  185. TxtInfo.Text="查询使用失败:返回"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
  186. }
  187. else TxtInfo.Text="网络连接已经断开,请重新登陆\r\n"+TxtInfo.Text;
  188. }
  189. private bool Noconn(){
  190. int clientsock=Convert.ToInt16(Session["clientsock"]);
  191. if (clientsock <= 0){
  192. TxtInfo.Text ="没有连接到任何服务器!!!\r\n"+TxtInfo.Text ;
  193. return true;
  194. }
  195. else
  196. return false;
  197. }
  198. protected void BtnDisConn_Click(object sender, System.EventArgs e) {
  199. int clientsock=Convert.ToInt16(Session["clientsock"]);
  200. MongateDisconnect(clientsock);
  201. BtnDisConn.Enabled=false;
  202. BtnLogin.Enabled=true;
  203. Session["clientsock"]=0;
  204. TxtInfo.Text ="断开连接,句柄:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text ;
  205. }
  206. protected void BtnTest_Click(object sender, System.EventArgs e) {
  207. if (Noconn()) return;
  208. int retu_state;
  209. int clientsock=Convert.ToInt16(Session["clientsock"]);
  210. if (clientsock > 0){
  211. retu_state = MongateTestConn(clientsock);
  212. if (retu_state ==1) TxtInfo.Text ="测试连接成功\r\n"+TxtInfo.Text;
  213. else{
  214. TxtInfo.Text ="测试连接成功\r\n"+TxtInfo.Text ;
  215. clientsock = 0;
  216. BtnLogin.Enabled = true;
  217. BtnDisConn.Enabled = false;
  218. }
  219. }
  220. }
  221. protected void CkKf_CheckedChanged(object sender, System.EventArgs e) {
  222. CkClick(2);
  223. }
  224. private void CkClick(int seltype){
  225. if (seltype== 0){
  226. if (CkSingle.Checked){
  227. CkVas.Checked = false;
  228. CkKf.Checked = false;
  229. }
  230. }
  231. else if (seltype ==1){
  232. if (CkVas.Checked){
  233. CkSingle.Checked = false;
  234. CkKf.Checked = false;
  235. }
  236. }
  237. else{
  238. if (CkKf.Checked){
  239. CkVas.Checked = false;
  240. CkSingle.Checked = false;
  241. }
  242. }
  243. Showme(TxtSport,CkVas.Checked);
  244. Showme(TxtFee,CkVas.Checked);
  245. Showme(TxtLinkid,CkVas.Checked);
  246. Showme(TxtCount,CkVas.Checked);
  247. BtnRecv.Enabled=(CkVas.Checked)||(CkKf.Checked);
  248. BtnState.Enabled=CkKf.Checked;
  249. if(CkVas.Checked ) BtnSend.Text="增值信息";
  250. else if (CkKf.Checked ) BtnSend.Text="客服信息";
  251. else BtnSend.Text="单向信息";
  252. }
  253. private void Showme( TextBox edtmp,bool flag){
  254. edtmp.Enabled=flag;
  255. if (flag) edtmp.BackColor =SystemColors.Window;
  256. else edtmp.BackColor =SystemColors.ScrollBar;
  257. }
  258. protected void CkSingle_CheckedChanged(object sender, System.EventArgs e) {
  259. CkClick(0);
  260. }
  261. protected void CkVas_CheckedChanged(object sender, System.EventArgs e) {
  262. CkClick(1);
  263. }
  264. protected void BtnLeft_Click(object sender, System.EventArgs e) {
  265. //查询余额
  266. if(Noconn()) return;
  267. int clientsock=Convert.ToInt16(Session["clientsock"]);
  268. int myfee;
  269. myfee=MongateQueryBalance(clientsock);
  270. if(myfee>=0) TxtInfo.Text ="查询余额成功,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
  271. else TxtInfo.Text ="查询余额失败,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
  272. }
  273. protected void BtnChangePwd_Click(object sender, System.EventArgs e) {
  274. //修改密码
  275. if(Noconn()) return;
  276. int clientsock=Convert.ToInt16(Session["clientsock"]);
  277. int myfee;
  278. myfee=MongateChangePwd(clientsock,TxtAccount.Text.Trim(),TxtPwd.Text.Trim(),
  279. TxtNewPwd.Text.Trim());
  280. if(myfee==1) TxtInfo.Text ="修改密码成功,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
  281. else TxtInfo.Text ="修改密码失败,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
  282. }
  283. }
  284. }