to:xzjxu
二进制怎么接受,能给个例子吗?

解决方案 »

  1.   

    比如:
    dim bin as byte
    getdata  bin
      

  2.   

    2.用动态数组可以发送所有种类的文件(包括text__ascii和其他二进制文件)
    dim youbmp() as byte
    .....'将文件用二进制打开然后读入youbmp数组winsock.senddata youbmp接受端也是用动态数组接受,
    用winsock.getdata youbmp,vbByte 'vbByte是个参数,我好象记错了,反正查MSDN就知道了.1.贴代码吧,应该没有问题的,除非你搞错了
      

  3.   

    to:
     gameboy999
     代码应该没错。我如果不用组发(也就是说远程的ip不用192.168.0.255)来实现的话就没问题,(预先知道服务器的ip是192.168.0.100)但现在要求服务器的ip不确定,也就只能用组播。
    第一次可以,发过一次以后再也不行了,重起机器后又可以了。
      

  4.   

    客户机端的:
     Private Sub Form_Load()
     Winsock1.RemotePort = 8888
     Winsock1.LocalPort = 8889
     Winsock1.Bind 8889
    .......
     End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
     Dim GetStr As String
     Winsock1.GetData GetStr
     MsgBox Getstr 
    .......
     ....
     End Sub
    服务器端:
     Private Sub Form_Load()
     Winsock1.RemotePort = 8889
     Winsock1.LocalPort = 8888
     Winsock1.Bind 8888
    .......
     End Sub Private Sub Command1_Click()
     winsock1.RemoteHost="192.168.0.100"
     Winsock1.SendData "dddd"
    .....
    End SubPrivate Sub Command2_Click()
     winsock1.RemoteHost="192.168.0.255"
     Winsock1.SendData "dddd"
    End Sub协议用的是udp.如果用准确的ip发送没问题,但用组发(command2_click)发过一次以后再发的话,客户机就收不到信息了.
      

  5.   

    服务器改为:
    Private Sub Form_Load()
    Winsock1.RemotePort = 8889
    Winsock1.LocalPort = 8888
    Winsock1.Bind
    End SubPrivate Sub Command1_Click()
    Winsock1.RemoteHost = "192.168.0.100"
    Winsock1.SendData "dddddd"
    End SubPrivate Sub Command2_Click()
    Dim i
    For i = 1 To 254
    Winsock1.RemoteHost = "192.168.0." & i
    Winsock1.SendData "hhhhh"
    Next i
    End Sub