作者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/cn.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