作者a0tim (~TIM~)
看板Visual_Basic
標題[.NET] Socket BinaryFormatter MemoryStream
時間Fri Oct 30 01:16:48 2015
應用程式專案
目的:
送SQL查詢字串給server,收回傳序列化的DataTable再反序列化
client 接收及反序列化程式碼:
Case "DATATABLE"
' 承接回傳的DB查詢
Dim i = clientSocket.Receive(byteData)
Dim bf As New BinaryFormatter()
Dim ms As New MemoryStream(65534)
ms.Write(byteData, 0, i)
ms.Flush()
Thread.Sleep(200)
While i = 8192
i = clientSocket.Receive(byteData)
If i > 0 Then
ms.Write(byteData, 0, i)
ms.Flush()
Thread.Sleep(200)
End If
End While
ms.Seek(0, SeekOrigin.Begin)
resultDataTable = bf.Deserialize(ms)
請教各位前輩
只要我不加上Thread.Sleep讓MemoryStream在write後等待一段時間
最後在反序列化的時候就會出錯
在完成剖析之前已達資料流末端
這是為什麼?
小弟百思不得其解
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.224.207
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1446139010.A.91D.html
1F:→ a0tim: ps. 不等待的話,最後的ms.length會少 10/30 01:23
※ 編輯: a0tim (123.192.224.207), 10/30/2015 01:27:07