3) 修改server端程序
短信发送代码
void CServerSocketDlg::SendSMS(CString sSMSText)
{
if(!iOnOrOff)
{
return;
}
if(m_msComm.GetPortOpen()) //如果串口是打开的,则先关闭串口
{
m_msComm.SetPortOpen(FALSE);
}
m_msComm.SetCommPort(1); //选择COM1
m_msComm.SetInBufferSize(1024); //接收缓冲区
m_msComm.SetOutBufferSize(1024);//发送缓冲区
m_msComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_msComm.SetInputMode(1);//以二进制方式读写数据
m_msComm.SetRThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
m_msComm.SetSettings("9600,n,8,1");//波特率9600无检验位,8个数据位,1个停止位
if(!m_msComm.GetPortOpen())//如果串口没有打开则打开
m_msComm.SetPortOpen(TRUE);//打开串口
else
m_msComm.SetOutBufferCount(0);
//通过AT指令发送SMS
if(m_msComm.GetPortOpen())
{
CString sReceiver;
CString m_strTXData;
m_strTXData = "AT+CMGF=1\r\n";
m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据
for(int i = 0; i < sReceiverArr.GetSize(); i++)
{
sReceiver = sReceiverArr[i];
m_strTXData="AT+CMGS=" + sReceiver + " \r\n";
Sleep(2000);
m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据
m_strTXData = sSMSText + " \x01a";
Sleep(2000);
m_msComm.SetOutput(COleVariant(m_strTXData));//发送数据
Sleep(2000);
}
}
}
Client端运行界面

Server端运行界面

