我在尝试使用我的 android (Basic4Android) 与运行 .net TCP 服务器的 PC 通信时遇到问题。我需要能够拥有向服务器发送 4 字节命令并接收响应的按钮。当我在android上运行程序时,服务器确实连接并接收到字符串“INFO”,但在我重新启动程序之前没有其他任何发送或接收,它只再次发送命令“INFO”。当我按下按钮发送命令时,我没有收到任何错误,但服务器从来没有收到任何东西。服务器是一个用VB.NET编写的Windows窗体多线程程序。我编写了一个可以工作的 VB.NET 客户端程序,我可以附上它作为我正在尝试做的示例。这是我对 Android 应用程序的第一次尝试,到目前为止,我只是修改了在教程中找到的网络示例。
代码如下...谢谢
Sub Process_Globals
Dim Socket1 As Socket
End Sub
Sub Globals
Dim Button_ARM As Button
Dim Button_STAY As Button
Dim Button_AUTO As Button
Dim Button_OFF As Button
Dim Label_Received As Label
Dim Label_Sent As Label
Dim tr As TextReader
Dim tw As TextWriter
Dim sb As StringBuilder
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Alarm_Control")
Socket1.Initialize("Socket1")
Socket1.Connect("#.#.#.#" , 8000, 20000) 'My IP address goes here
End Sub
Sub Socket1_Connected (Successful As Boolean)
If Successful = False Then
Msgbox(LastException.Message, "Error connecting")
Return
End If
tr.Initialize(Socket1.InputStream)
tw.Initialize(Socket1.OutputStream)
tw.WriteLine("INFO")
Label_Sent.Text = "Sent INFO"
tw.Flush
sb.Initialize
sb.Append(tr.ReadLine)
Label_Received.Text = sb.ToString
'Socket1.Close
End Sub
Sub Button_ARM_Click
tw.WriteLine("O001")
tw.Flush
Label_Sent.Text = "Sent O001"
End Sub
Sub Button_STAY_Click
tw.WriteLine("O002")
tw.Flush
Label_Sent.Text = "Sent O002"
End Sub
Sub Button_OFF_Click
tw.WriteLine("O000")
tw.Flush
Label_Sent.Text = "Sent O000"
End Sub