VB.net中利用TCP发送结构体 结构体中包含结构体和string、数组类型、整型
紧急求助,请问下如何在VB.net中利用TCP发送结构体啊,本人是菜鸟,发送的结构体中包含结构体和string、数组类型、整型;接收端接受的整型数据没有问题,但结构体和string、数组类型接收为乱码,或直接收不到。请高手赐教!!!!!!!十分感谢,我试了用VB.netTCP发送结构体,在指针转化为结构体时类似上面代码部分语句:statisticalData _ClientHeadOBject= (statisticalData)Marshal.PtrToStructure(_DataIntPtr,typeof(statisticalData)); 即把指针还原为结构体老出现试图访问已经损坏的内存,或者读写内存,请帮忙高手解答下这个问题吧,谢谢了 --------------------编程问答-------------------- 为什么不直接序列化?
看看这个:http://topic.csdn.net/t/20050121/16/3744415.html --------------------编程问答-------------------- 最好,全转成字节后,,再去发送
给你点小代码
Private Function longtohex(i As Long) As String
s = DEC_to_HEX(i)
For i = 1 To 8 - Len(s)
s = "0" + s
Next
longtohex = s
End Function
Private Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function
Private Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim b As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": b = b + 16 ^ (i - 1) * 0
Case "1": b = b + 16 ^ (i - 1) * 1
Case "2": b = b + 16 ^ (i - 1) * 2
Case "3": b = b + 16 ^ (i - 1) * 3
Case "4": b = b + 16 ^ (i - 1) * 4
Case "5": b = b + 16 ^ (i - 1) * 5
Case "6": b = b + 16 ^ (i - 1) * 6
Case "7": b = b + 16 ^ (i - 1) * 7
Case "8": b = b + 16 ^ (i - 1) * 8
Case "9": b = b + 16 ^ (i - 1) * 9
Case "A": b = b + 16 ^ (i - 1) * 10
Case "B": b = b + 16 ^ (i - 1) * 11
Case "C": b = b + 16 ^ (i - 1) * 12
Case "D": b = b + 16 ^ (i - 1) * 13
Case "E": b = b + 16 ^ (i - 1) * 14
Case "F": b = b + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = b
End Function
补充:.NET技术 , VB.NET