Vb.net vb2008 SMS发送从第二行开始,而不是第一行

Vb.net vb2008 SMS发送从第二行开始,而不是第一行,vb.net,sms,at-command,sms-gateway,Vb.net,Sms,At Command,Sms Gateway,我正在进行的项目有一些问题。我使用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 = "CO

我正在进行的项目有一些问题。我使用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更改为vbCr

sender_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)

与其在问题中嵌入解决方案,不如为自己的问题创建一个正确的答案。此外,您还需要修复AT命令响应处理的不足,特别是AT+CMGS的前缀处理,请参阅。如果您的代码目前按预期工作,那么您就是幸运的。