VB中用WINSOCK控件怎样接收二进制数据?

时间:2022-02-26 23:42:24
要接收的数据是一个结构
struct{
int  i;
char c;
};

在VB中用WINSOCK来接收,收到后怎样把i、c分开?并把i放到一个int变量中?

3 个解决方案

#1


整体作为二进制来收取,然后再分别挑出来。

#2


type mytype 
     i as integer
     c as byte
end type
dim mytype1 as mytype
'/////////////发送
  dim Buffer() as byte  
  reDim Buffer(LenB(mytype1) - 1)
  CopyMemory Buffer(0), mytype1 , LenB(mytype1 ) '将结构转换为2进制数组
  Winsock1.SendData Buffer                       '发送mytype1结构的内容
'///////////////

'///////接收
dim mytype2
Dim Buffer() As Byte  
Winsock2.GetData Buffer, vbByte, bytesTotal      '接收发送过来的2进制内容
CopyMemory mytype2, Buffer(0), lenb(mytype2)     '转换为结构mytype2
''mytype2就是发送过来的mytype1结构..你可以直接操作mytype2了.

#3


非常感谢!

#1


整体作为二进制来收取,然后再分别挑出来。

#2


type mytype 
     i as integer
     c as byte
end type
dim mytype1 as mytype
'/////////////发送
  dim Buffer() as byte  
  reDim Buffer(LenB(mytype1) - 1)
  CopyMemory Buffer(0), mytype1 , LenB(mytype1 ) '将结构转换为2进制数组
  Winsock1.SendData Buffer                       '发送mytype1结构的内容
'///////////////

'///////接收
dim mytype2
Dim Buffer() As Byte  
Winsock2.GetData Buffer, vbByte, bytesTotal      '接收发送过来的2进制内容
CopyMemory mytype2, Buffer(0), lenb(mytype2)     '转换为结构mytype2
''mytype2就是发送过来的mytype1结构..你可以直接操作mytype2了.

#3


非常感谢!