如题,怎么实现(程序)?
要配备哪些设备?
要和哪些部门联系?估计移动、联通、电信的不一样,我只接触过短信猫,其他什么也不知道。
开发过这种软件的指点下。

解决方案 »

  1.   

    需要一个短信接口提供商,联系一下亿美技术,我们单位以前用的是这个公司的
    http://www.emay.cn/product/duanxin/p_493.htm
    http://www.duanxin110.cn/download/sdk.pdf
      

  2.   

    我只接触过短信猫
    这个解决不了吗?
    遇到什么问题?闲暇时光不想浪费吗?用《Csdn收音机》找个话题聊聊技术吧!
      

  3.   

    通过短信猫,将短信猫连接在你的电脑的串口或者USB口(需要转USB到串口),然后使用AT指令发送短信.
    可以做飞信的二次开发,下载个SDK玩玩,很简单.不过有一些限制.
    通过网关可以发送,向移动或者联通购买服务,使用tcp或udp连接到指定指定网关可以发送.需要了解一些tcp/ip方面的知识,需要花点时间研究移动或者联通的相关协议,例如CPMM或者SGIP
      

  4.   

    服务器上安装一个短信猫,配个SIM卡,然后用AT指令向串口写信息即可。
      

  5.   

    1.短信猫
    2.找运商申请SP(短信网关)账号,然后开发SP接口程序。接口协议复杂,开发实现难度大些
    3.找中间商约定接口。API通常经过简化,开发实现难度通常比较小
      

  6.   

    最简单的方法是使用GSM模块,例程如下:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OleDb;namespace WindowsApplication2
    {
        public partial class Form1 : Form
        {
            bool IsMessageFlag=false;
            string MessageStr,MessageLth;
            int j=0;
            string msg = "";//要发送的消息内容,
            string num = "";//对方手机号码
             string csca = "8613800210500";//短消息中心号码,具体请查询SIM卡,这个是上海移动的号码        string prex = "0891";
            string midx = "11000D91";
            string sufx = "000800";        public Form1()
            {
                InitializeComponent();
            }        private void encode()
            {
                /*pdu编码,计算长度*/
                string pdu, psmsc, pnum, pmsg;
                string leng;
                int length;
                
                length = (msg.Length) * 2;
                leng = length.ToString("X");
                if (length < 16)
                {
                    leng = "0" + leng;
                }
                psmsc = telc(csca).Trim();
                pnum = telc(num).Trim();
                pmsg = ascg(msg.Trim());
                pdu = prex + psmsc + midx + pnum + sufx + leng + pmsg;
                MessageStr = pdu;
                MessageLth = (15 + length).ToString();
            }        private string telc(string MobileNum)
            {
                /*手机号码转换*/
                int tl;
                string ltem, rtem, ttem;
                int ti;            ttem = "";
                tl = MobileNum.Trim().Length;
                if (tl != 11 && tl != 13)
                {
                    MessageBox.Show("wrong number:" + MobileNum);
                    return "";
                }
                if (tl == 11)  
                {
                    tl += 2;
                    MobileNum = "86" + MobileNum;
                }
                for (ti = 0; ti < tl; ti += 2)
                {
                    ltem = MobileNum.Substring(ti, 1);
                    if (ti == tl - 1)
                    {
                        rtem = "F";
                    }
                    else
                    {
                        rtem = MobileNum.Substring(ti + 1, 1);
                    }
                    ttem += rtem + ltem; 
                }
                return ttem;
            }        private string ascg(string smsg)
            {
                /*unicode编码转换*/
                string res = "";
                string ls;
                string rs;            byte[] resByte = System.Text.UnicodeEncoding.Unicode.GetBytes(smsg);
                for (int i = 0; i < resByte.Length; i += 2)
                {
                    ls = resByte[i].ToString("X2");
                    rs = resByte[i + 1].ToString("X2");
                    res = res + rs + ls; 
                }
                return res.Trim();
            }        private void co(string cos)
            {
                /*下发指令*/
                try
                {
                    serialPort1.Open();
                    byte[] WriteBuffer = Encoding.ASCII.GetBytes(cos);
                    serialPort1.Write(WriteBuffer, 0, WriteBuffer.Length);
                    while (IsMessageFlag == false) ;
                    IsMessageFlag = false;
                    System.Threading.Thread.Sleep(1000);
                    serialPort1.Close();
                }
                catch {MessageBox.Show("no gsm");}
            }        private void cco()
            {
                /*状态归零*/
                IsMessageFlag = false;
                j = 0;
            }        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                /*获取GSM反馈信息*/
                CheckForIllegalCrossThreadCalls = false;            StringBuilder currentline = new StringBuilder();
                j++;
                while (serialPort1.BytesToRead > 0)
                {
                    char ch = (char)serialPort1.ReadByte();
                    currentline.Append(ch);
                }
                IsMessageFlag = true;
                textBox2.Text = currentline.ToString();
            }
       
            private void button4_Click(object sender, EventArgs e)
            {
                /*发短信*/
                encode();
                
                string s1 = "AT" + "\r";
                string s2 = "AT+CMGF=0" + "\r";
                string s3 = "AT+CMGS=" + MessageLth + "\r";
                string s4 = MessageStr + ((char)26).ToString();
                
                co(s1);
                cco();
                co(s2);
                cco();
                co(s3);
                cco();
                co(s4);
                cco();
            }
         }
    }
      

  7.   

    可以做飞信的二次开发,下载个SDK玩玩,很简单.不过有一些限制.
      

  8.   

    用这个短信群发软件就可以!
    你可以去这里下载http://www.infotoall.com/message/soft-download.htm