[.NET] Textbox 內容消失
大家好!
我寫一個 SERVER SOCKET接收資料,
Dim ListenThread As New Thread(AddressOf StartListen)
ListenThread.IsBackground = True
ListenThread.Start()
////////////////////////////////////////////////////
Private Sub StartListen()
Try
serverSocket = New Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp)
Dim serverIP As IPAddress = IPAddress.Parse(txtip.Text)
Dim Port As String = txtport.Text
Dim serverhost As New IPEndPoint(serverIP, Int32.Parse(Port))
serverSocket.Bind(serverhost)
serverSocket.Listen(50)
UpdateText("Server started at: " + serverIP.ToString() + ":" +
Port)
Do
ClientSocket = serverSocket.Accept()
If ClientSocket.Connected = True Then
Dim ReceiveThread As New Thread(AddressOf ReceiveData)
ReceiveThread.IsBackground = True
ReceiveThread.Start()
End If
Loop
Catch ex As Exception
UpdateText(ex.StackTrace.ToString())
End Try
////////////////////////////////////////////////////////
Private Sub ReceiveData()
Dim myNetworkStream As New NetworkStream(ClientSocket)
Dim InBytesCount As Integer = 0
Dim myReceiveBytes(1023) As Byte
Dim i As Integer = 0
While True
Try
InBytesCount = myNetworkStream.Read(myReceiveBytes, 0,
myReceiveBytes.Length)
System.Threading.Thread.Sleep(100)
If InBytesCount = 0 Then
Exit While
End If
UpdateText(Encoding.GetEncoding(950).GetString(myReceiveBytes).
TrimEnd().TrimStart())
Catch ex As Exception
MessageBox.Show(ex.ToString)
Exit Sub
End Try
End While
End Sub
//////////////////////////////////////////////////////////////
Private Sub UpdateText(ByVal comData As String)
'如果呼叫txtReceive的是另外的執行緒,傳回True
If Me.TxtReceive.InvokeRequired Then
'利用委派型別建立委派物件,並指定委派的函式
Dim d As New SetTextCallback(AddressOf GetUpdateText)
'用大括號 {} 括住初始值,藉以初始化陣列的值。
Try
Me.Invoke(d, New Object() {comData})
'以指定的引數清單叫用函式
Catch ex As Exception
End Try
Else '相同的執行緒
GetUpdateText(comData) '將收到的資料填入接收文字框中
End If
End Sub
///////////////////////////////////////////////////////////////
Private Sub GetUpdateText(ByVal comData As String)
txtRecord.Text = comData + vbCrLf + txtRecord.Text
End Sub
然後我用手機當CLIENT發送幾道指令,EX. (STX)123456(ETX)
結果 txtRecord 只會顯示當下收到的指令,
而沒有印出所有指令,
請問要怎麼修改才能印出所有指令呢?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.47.106
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1461575137.A.08C.html
推
04/25 17:12, , 1F
04/25 17:12, 1F
→
04/25 17:14, , 2F
04/25 17:14, 2F
→
04/25 17:16, , 3F
04/25 17:16, 3F
→
04/25 17:17, , 4F
04/25 17:17, 4F
→
04/25 17:25, , 5F
04/25 17:25, 5F
→
04/26 09:36, , 6F
04/26 09:36, 6F
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章