方法1
Dim sTemp1 As String
Winsock1.GetData sTemp1  '接收数据 放入 sTemp1 内 一次最多1024节字?
Text1.Text = sTemp1    '显示为乱码方法2
Dim bb(1 To 200) As Byte
Dim ti As Integer
Winsock1.GetData bb()
 
For ti = 0 To 200
  Print bb(ti)    '全部显示为0
Next ti有什么办法可以解决?

解决方案 »

  1.   

    Dim bb() As Byte
    Dim ti As LongReDim bb(bytesTotal-1)
    Winsock1.GetData bb
    For ti = 0 To bytesTotal-1
      debug.Print right("0"+Hex(bb(ti)),2);" ";
    Next ti
    debug.print
      

  2.   

    用 Winsock 实现聊天的程序一个简单的聊天程序程序所需控件:Winsock控件,CommandButton控件(默认name),TextBox控件(一个名称为txtMess,另一个名称为txtSend)程序代码如下:
    Private Sub Form_Load()
    Dim my As String
    Winsock1.Protocol = sckUDPProtocol '设置为UDP协义
    Winsock1.LocalPort = 10 '设置计算机的端口,随便设置,不过两个要一样
    Winsock1.RemotePort = 10
    my = Winsock1.LocalIP '取得自己的IP地址,是不要的
    Winsock1.RemoteHost = my '这里应该是设置为别人计算机的IP地址,由于自己是单机,所以就设置成自己的,自己给自己发信息
    End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时发生
    Dim Tmp As String
    Winsock1.GetData Tmp, vbString '取得数据
    Tmp = "对方位址:" + Winsock1.RemoteHostIP + "发言内容为-->" + Tmp
    txtMess.Text = Tmp + Chr$(13) + Chr$(10) + txtMess.Text
    End SubPrivate Sub Command1_Click() '发送信息
    Winsock1.SendData txtSend.Text
    End Sub补充:若是想要同時多人聊天的话,则你的RemoteHost 需要将最后面的地址设置为255(广播节点)才行
      

  3.   

    1、双方的通信协议、IP、端口等等设置要正确。
    2、我测试UDP通信WINSOCK控件8KB是可以的
    3、实在不知道用什么数据类型接收合适,就
    dim bb as variant
    Winsock1.GetData bb
    让VB自己去搞。
    如果想用数组接收,可以这样:
    dim bb()
    redim bb(bytestotals-1)