[.NET] Socket BinaryFormatter MemoryStream

看板Visual_Basic作者 (~TIM~)時間8年前 (2015/10/30 01:16), 8年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
應用程式專案 目的: 送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://www.ptt.cc/bbs/Visual_Basic/M.1446139010.A.91D.html

10/30 01:23, , 1F
ps. 不等待的話,最後的ms.length會少
10/30 01:23, 1F
※ 編輯: a0tim (123.192.224.207), 10/30/2015 01:27:07
文章代碼(AID): #1MCbI2aT (Visual_Basic)