第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共10页socket通信例子publicvoidsend(){while(true){stringsql="selecttop100*fromsend";SqlDataReaderdatareader=sqlserver.ExecuteSqlDataReader(sql);if(datareader.HasRows)//有记录才进行网关联接{stringshow;stringhost;//intport=Convert.ToInt16("8801");//host=Dns.GetHostName();//host="192.168.123.110";sockettemp=newsocket();Socketsend=temp.connectSocket(this.remote_ip,this.remote_port);if(send==null){this.send_listbox("打开远程SMG失败");}else{this.send_listbox("打开远程SMG成功");byte[]bind_content=sgip_test.bind(count);count_step();byte[]receive=newbyte[256];byteflag;send.Send(bind_content,bind_content.Length,0);//bindsend.Receive(receive,29,0);//bind_resp读取29位flag=sgip_test.bind_resp_result(receive);if(flag==0)this.send_listbox("成功联接到网关");elsethis.send_listbox("联接网关失败");while(datareader.Read()){string第2页共10页第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共10页spnumber=datareader["spnumber"].ToString().Trim();stringchargenumber=datareader["chargenumber"].ToString().Trim();stringusernumber=datareader["usernumber"].ToString().Trim();stringservicetype=datareader["servicetype"].ToString().Trim();bytefeetype=Byte.Parse(datareader["feetype"].ToString().Trim());stringfeevalue="/datareader["feevalue"].ToString().Trim();string"content=datareader["content"].ToString().Trim();byte[]submit=sgip_test.submit(spnumber,chargenumber,usernumber,servicetype,feetype,feevalue,content,CorpId,count);send.Send(submit,submit.Length,0);//sumbmitcount_step();send.Receive(receive,29,0);//submit_respflag=sgip_test.submit_resp_result(receive);if(flag==0){this.send_listbox("手机号:"+usernumber+"业务代码:"+servicetype+"SP下行号码:"+spnumber);this.send_listbox("消息内容:"+content);this.send_listbox("消息发送成功");stringdel_sql="deletefromsendwhereid="+datareader["id"].ToString().Trim();sqlserver.ExecuteSqlComand(del_sql);}elsethis.send_listbox("消息发送失败");}datareader.Close();byte[]unbind=sgip_test.unbind(count);count_step();send.Send(unbind,unbind.Length,0);//unbindsend.Receive(receive,20,0);//unbind_resp只有消息头send.Close();temp=null;第3页共10页第2页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共10页}}elsedatareader.Close();//如果没有记录的话,就马上删除联接,不然要超时出错Thread.Sleep(100);}}数据写入字节流publicbyte[]submit(stringSPNumber,stringChargeNumber,stringUserNumber,stringServiceType,byteFeeType,stringFeeValue,stringMessageContent,stringCorpId,uintcount){//SPNumber21字节textSP的接入号码//ChargeNumber21字节text付费号码,手机号码前加“86”国别标志;当且仅当群发且对用户收费时为空;如果为空,则该条短消息产生的费用由UserNumber代表的用户支付;如果为全零字符串“000000000000000000000”,表示该条短消息产生的费用由SP支付。//UserCount1字节int接收短消息的手机数量,取值范围1至100//UserNumber21字节text接收该短消息的手机号,该字段重复UserCount指定的次数,手机号码前加“86”国别标志//CorpId5字节text企业代码,取值范围0-99999//ServiceType10字节text业务代码,由SP定义//FeeType1字节int计费类型//FeeValue6字节text取值范围0-99999,该条短消息的收费值,单位为分,由SP定义对于包月制收费的用户,该值为月租费的值//GivenValue6字节text取值范围0-99999,赠送用户的话费,单位为分,由SP定义,特指由SP向用户发送广告时的赠送话费//AgentFlag1字节int代收费标志,0:应收;1:实收//MorelatetoMTF...