当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,