NO!碰到复杂的字符串就惨了,我就曾经昏倒过!
用winsock的sendcomplete事件,发送完一个再发另外一个。

解决方案 »

  1.   

    实在不行,用两个Winsock控件吧,把Winsock1和Winsock2都放一个窗体里,同时分别发送和接收字符窜,之后把他们连接以来,看看行不行
      

  2.   

    实在不行,用两个Winsock控件吧,把Winsock1和Winsock2都放一个窗体里,同时分别发送和接收字符窜,之后把他们连接以来,看看行不行
      

  3.   

    别浪费时间了.不行.你只能定义自己的分隔符.接受到之后在分开.
    Winsock连你两次发送的数据都可能同一次接受到呢.
      

  4.   

    用延时可以解决问题,只要你的延时足够长.winsock控件有一个发送缓冲.它会把数据尽可能的一次发送出去,只要延时足够长就可以避开.或者定义一个分隔串,比如"##SPLIT@@",这样重码的可能性就小的多.或者可以在每次传送前初始化一个分隔串,这样就不会重码了.注意winsock一次只能发送几十k的数据,如果你的数据很大需要在接受的时候进行拼接.
    我以前闲着写过一个用winsock传送字符和文件的控件,写的不怎么样不过你也许可以参考,需要的话告诉我.
      

  5.   

    两个发送间加一个DoEvents即可!
      

  6.   

    Yes,用DoEvents。sendcomplete事件修改标志.
      

  7.   

    dim s1 as string
    s1 = "xxxxxx"dim s2 as string
    s2 = "yyyyyyy"
    winsock1.senddata s1 & vbnullchar...winsock1.senddata s2 & vbnullchar....
    private sub winsock1_dataa...(...)
        static sdata as string
        dim s as string
        winsock1.getdata s    sdata = sdata & s    dim vt as variant
        for each vt in split(sdata,vbnullchar)
            debug.print vt
        next
    end sub