如题!!

解决方案 »

  1.   

    由于vb中是用宽字符表示字符串的,所以用二进制数组接受时,如果所有低位都时都时0,就说明发送的是字符串,这时候只要把接受到的二进制数组直接赋给字符串变量就可以了(接收时二进制数组必须是未规定上下标的byte数组 这样接受到的字符串才能正常还原回去)
      

  2.   

    MSDN中说winsock 取数据的用法:GetData 
    object.GetData data, [type,] [maxLen]
    其中数据类型是需自己去管理的,你让它是什么类型他就是什么类型。
    好像默认的是VBarray + vbbyte .
    你定义的什么类型的变量去接收,他就是什么类型的数据。
      

  3.   

    字符串与字节数组有本质区别吗?
    若从本质上说,winsock发送的数据类型只有一种,就是字节数组。就象文件支持用String读写也支持字节数组读写一样,所有非字节数组类型的传输,其实都是VB自动帮你进行了一次类型转换。若传输内容确为可读文本,那么这种转换就没问题,否则为乱码。存在混合类型传输时,当然要使用字节数组这种最原始的数据类型,放弃VB的自动转换,在需要时自己代码转换,所以同意绿豆的意见,通讯双方在协议中建立一个标志。以区分不同类型数据。
      

  4.   

    我有传文件和传字符的winsock控件。
    [email protected]