在VB里如果传送非网字节数据!(SOCKET)
例如:dim login as byte
     dim aa as ingter
     aa=3204 
 那么通过SOCKET控件怎传呢?

解决方案 »

  1.   

    '发送
    winsock.SendData str(aa)'当字符来传
    接收的时候:
    Dim strData As String
    Dim ByteData() As Byte
    winsock.GetData ByteData, vbByte '得到字节
    strData = StrConv(ByteData, vbUnicode)'转换为字符串
      

  2.   

    各位好像这样也不对呀,我还是把内容贴出来吧!
    登陆操作
    字段名          字节数   类型        描述
    Header->dwType 4 Integer 数据类型ID:3204
    Header->dwLength   4 Unsigned Integer 实际数据长度(登陆请求消息长度-header长度)
    nCompanyID 4 Integer 企业编号
    szUserName 20 Octet String 用户名
    szPassword 16 Octet String 密码
    nVersion           4       Unsigned Integer 版本号:1
    ________________________________________________________________________________
    Unsigned Integer   无符号整数(非网络字节顺序)
    Integer 整数,可为正整数、负整数或零(非网络字节顺序)
    Octet String 定长字符串,位数不足时,如果左补0则补ASCII表示的零,如果右补0则补二进制的零
    _________________________________________________________________________________
    本协议的数字类型(int)并未采用网络字节顺序,采取的是Windows默认的字节顺序(高字节在前,低字节在后)。
    本协议字符串编码规则为GB2312编码。
    _________________________________________________________________________________
    请大家帮忙,这个该怎么发!
    dwType=3204
    dwLength=52
    nCompanyID=1030
    szUserName=csdn
    szPassword=csdn
    nVersion =1
    请问用winsock控怎么发
      

  3.   

    取得结构体 地址 再memorycopy 到 字节数组
    发送字节数组。
      

  4.   

    你这个字节长度是你自己算的,还是双方约定的?那你每一项就都先赋值到字节数组中。
    (通过strconv函数 把你要的数据 转为字节数组)然后拼起来,如果长度是你自己算的,那么直接拼起来就可以了
    约定的话,不要忘了保留多余字节。最后发送一个整个结构体的字节数组。