我在进行项目时遇到了一些问题。我正在使用vb2008使用AT +命令发送短信。所以这是代码
Dim sender_port As New System.IO.Ports.SerialPort()
Private Sub btn_sender_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sender.Click
'set port values
sender_port.PortName = "COM16"
sender_port.BaudRate = 115200
sender_port.Parity = IO.Ports.Parity.None
sender_port.StopBits = IO.Ports.StopBits.One
sender_port.DataBits = 8
sender_port.Handshake = IO.Ports.Handshake.RequestToSend
sender_port.DtrEnable = True
sender_port.RtsEnable = True
sender_port.NewLine = vbCrLf
sender_port.Open()
If sender_port.IsOpen Then
Dim forSending As New MySqlDataAdapter("select * from sms_for_sending where dateSent = 0000-00-00 LIMIT 1", myconn)
Dim myDataTable As New DataTable
forSending.Fill(myDataTable)
If myDataTable.Rows.Count = 1 Then
'send message
sender_port.Write("AT" & vbCrLf)
sender_port.Write("AT+CMGF=1" & vbCrLf)
sender_port.Write("AT+CMGS=" & Chr(34) & myDataTable.Rows(0).Item("recepient") & Chr(34) & vbCrLf)
sender_port.Write(myDataTable.Rows(0).Item("message") & vbCrLf & vbCrLf & "Sent using SMS Server" & vbCrLf & "(do not reply)" & Chr(26))
Else
MessageBox.Show("Sender Port no Available", "SMS Server")
End If
End If
End Sub
邮件已成功发送。但我收到的信息是:
“
这是测试信息
使用SMS服务器发送
(不回复)“
取而代之的是:
“这是测试信息
使用SMS服务器发送
(不回复)“
请帮忙。感谢
编辑:我确实解决了它。
我认为vbCrLf只是一个功能。但是做了一些研究我发现vbCrLf相当于“\ r \ n”而vbCr只是“\ r”而vbLf就是“\ n”。
我刚刚在
中将vbCrLf更改为vbCrsender_port.Write("AT+CMGS=" & Chr(34) & myDataTable.Rows(0).Item("recepient") & Chr(34) & vbCrLf)
现在是
sender_port.Write("AT+CMGS=" & Chr(34) & myDataTable.Rows(0).Item("recepient") & Chr(34) & vbCr)