예제 #1
0
        public String sendSms(SmsMessage sms)
        {
            StringBuilder msg = new StringBuilder();
            if (loginFlag == false)
            {
                login();
            }
            if (loginFlag)
            {
                String smsType = sms.SmsType;
                if (smsType == null)
                {
                    smsType = PackType.DATA_BACK;
                }

                byte[] tagByte = Encoding.Default.GetBytes(COMPART_TAG);
                byte[] packHeadByte = Encoding.Default.GetBytes(smsType);
                byte[] sequenceIdByte = Encoding.Default.GetBytes(sms.SequenceId);
                byte[] targetNumberByte = Encoding.Default.GetBytes(sms.TargetNumber);
                byte[] sendNumberByte = Encoding.Default.GetBytes(sms.SendNumber);

                byte[] contentByte = null;
                try
                {
                    contentByte = Encoding.Default.GetBytes(sms.Content);

                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                byte[] createTimeByte = Encoding.Default.GetBytes(sms.CreateTime);
                int length = packHeadByte.Length;
                length += sequenceIdByte.Length;
                length += targetNumberByte.Length;
                length += sendNumberByte.Length;
                length += contentByte.Length;
                length += createTimeByte.Length;
                length += 6;

                int size = length + Encoding.Default.GetBytes(Convert.ToString(length)).Length;
                length = length + Encoding.Default.GetBytes(Convert.ToString(size)).Length;
                try
                {
                    List<byte> bb = new List<byte>();
                    bb.AddRange(Encoding.Default.GetBytes(Convert.ToString(length)));
                    bb.AddRange(tagByte);
                    bb.AddRange(packHeadByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(sequenceIdByte);
                    bb.AddRange(tagByte);

                    bb.AddRange(targetNumberByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(sendNumberByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(contentByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(createTimeByte);

                    socket.Send(bb.ToArray());

                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                byte[] readData = new byte[100];
                try
                {
                    socket.Receive(readData);
                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                String receiveStr = Encoding.Default.GetString(readData);
                String[] datas = receiveStr.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
                if (datas.Length < 2)
                {
                    return null;
                }

                String pageType = datas[1];
                String receiveCode = datas[3];

                if (PackType.RECEIVE_BACK.Equals(pageType))
                {
                    sms.ReceiveCode = receiveCode;
                    if (datas[3].StartsWith(ReceiveCode.RECEIVE_SUCCESS))
                    {
                        sms.ReceiveId = datas[4];
                    }
                    else
                    {
                        string _receiveInfo = "";
                        ReceiveInfo.map.TryGetValue(receiveCode, out _receiveInfo);
                        sms.ReceiveInfo = _receiveInfo;
                    }
                }
                return receiveStr;

            }
            else
            {
                // ���ȵ�¼
                msg.AppendFormat("���ȵ�¼");
                log(msg);
            }

            return null;
        }
예제 #2
0
 public void sendSingleSms(String sourcePhone, String targetPhone, String message)
 {
     getSocket();
     setUserId(_userId);
     setPassWord(_passWord);
     login();
     SmsMessage sms = new SmsMessage();
     sms.SequenceId = "1214";
     sms.Content = message;
     sms.TargetNumber = targetPhone;
     sms.SendNumber = sourcePhone;
     sms.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     sms.SmsType = PackType.DATA_BACK;
     sendSingleSms(sms);
 }
예제 #3
0
 public void sendSingleSms(SmsMessage sms)
 {
     StringBuilder msg = new StringBuilder();
     if (loginFlag)
     {
         String receiveStr = sendSms(sms);
         if (!String.IsNullOrEmpty(receiveStr) && !String.IsNullOrEmpty(sms.ReceiveId))
         {
             // send ok
             msg.AppendFormat("msg send ok!\r\n");
             msg.AppendFormat("receivecode:"+sms.ReceiveCode+"\r\n");
             msg.AppendFormat("targetnumber:"+sms.TargetNumber+"\r\n");
             msg.AppendFormat("time:"+sms.CreateTime+"\r\n");
             msg.AppendFormat("content:"+sms.Content);
             log(msg);
         }
         else
         {
             //���ڷ���ʧ�ܶ�״̬���쳣����
             dealError(sms.ReceiveCode);
         }
     }
     destroy();
 }
예제 #4
0
        public String sendSms(SmsMessage sms)
        {
            StringBuilder msg = new StringBuilder();

            if (loginFlag == false)
            {
                login();
            }
            if (loginFlag)
            {
                String smsType = sms.SmsType;
                if (smsType == null)
                {
                    smsType = PackType.DATA_BACK;
                }

                byte[] tagByte          = Encoding.Default.GetBytes(COMPART_TAG);
                byte[] packHeadByte     = Encoding.Default.GetBytes(smsType);
                byte[] sequenceIdByte   = Encoding.Default.GetBytes(sms.SequenceId);
                byte[] targetNumberByte = Encoding.Default.GetBytes(sms.TargetNumber);
                byte[] sendNumberByte   = Encoding.Default.GetBytes(sms.SendNumber);

                byte[] contentByte = null;
                try
                {
                    contentByte = Encoding.Default.GetBytes(sms.Content);
                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                byte[] createTimeByte = Encoding.Default.GetBytes(sms.CreateTime);
                int    length         = packHeadByte.Length;
                length += sequenceIdByte.Length;
                length += targetNumberByte.Length;
                length += sendNumberByte.Length;
                length += contentByte.Length;
                length += createTimeByte.Length;
                length += 6;

                int size = length + Encoding.Default.GetBytes(Convert.ToString(length)).Length;
                length = length + Encoding.Default.GetBytes(Convert.ToString(size)).Length;
                try
                {
                    List <byte> bb = new List <byte>();
                    bb.AddRange(Encoding.Default.GetBytes(Convert.ToString(length)));
                    bb.AddRange(tagByte);
                    bb.AddRange(packHeadByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(sequenceIdByte);
                    bb.AddRange(tagByte);

                    bb.AddRange(targetNumberByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(sendNumberByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(contentByte);
                    bb.AddRange(tagByte);
                    bb.AddRange(createTimeByte);

                    socket.Send(bb.ToArray());
                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                byte[] readData = new byte[100];
                try
                {
                    socket.Receive(readData);
                }
                catch (Exception e)
                {
                    msg.AppendFormat(e.ToString());
                    log(msg);
                }

                String   receiveStr = Encoding.Default.GetString(readData);
                String[] datas      = receiveStr.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
                if (datas.Length < 2)
                {
                    return(null);
                }

                String pageType    = datas[1];
                String receiveCode = datas[3];

                if (PackType.RECEIVE_BACK.Equals(pageType))
                {
                    sms.ReceiveCode = receiveCode;
                    if (datas[3].StartsWith(ReceiveCode.RECEIVE_SUCCESS))
                    {
                        sms.ReceiveId = datas[4];
                    }
                    else
                    {
                        string _receiveInfo = "";
                        ReceiveInfo.map.TryGetValue(receiveCode, out _receiveInfo);
                        sms.ReceiveInfo = _receiveInfo;
                    }
                }
                return(receiveStr);
            }
            else
            {
                // 请先登录
                msg.AppendFormat("请先登录");
                log(msg);
            }

            return(null);
        }