1
我無法通過winsock
發送propertybag
。我有一個通過使用propertybag
發送圖像的客戶端/服務器應用程序。我將propertybag
轉換成一個字節數組,並嘗試通過winsock
發送它,然後當我將字節數組轉換回propertybag
時,它看起來似乎不能讀取它。看起來數據在發送時已損壞。通過winsock發送包?
客戶端(發送屬性包)
Dim pb As PropertyBag
Dim byt() As Byte
Set pb = New PropertyBag
pb.WriteProperty "picc", Image1.Picture
byt = pb.Contents
Winsock1.SendData byt
服務器(接收的PropertyBag)
Dim byt() As Byte
Dim pb As PropertyBag
Set pb = New PropertyBag
Winsock1.GetData byt, vbByte
pb.Contents = byt
Image1.Picture = pb.ReadProperty("picc")
我收到的錯誤:
Run-time error '327':
Data value named 'picc' not found
當我嘗試在沒有winsock
的單個程序中執行代碼時,它工作得很好。當我通過winsock
發送字節數組時發生問題。 >參考 -
我會寫字節數組(發送和接收)到一個文件並比較差異 – Hrqls
一個'SendData'調用不能通過一個'GetData'調用可靠地接收。這是「數據包謬誤」。您不會在用戶定義的「數據包」中發送數據,而是發送流片段並接收長度不相同的流片段(並且每個數據到達事件的長度可能小至1個字節)。 TCP不是數據報協議。 – Bob77