用Winsock控件发送一个字符串,如果这个字符串长度很小,那么一般会被放在缓冲区中而不是立刻发送出去,用Doevents虽然可以实现立刻发送,但是由于同时发生的事件太多,往往会发生一些无法预料的错误,记得就像有位朋友曾经说过的,用Dovents简直就是灾难,所以在此诚心请教,除了用Doevents,还有什么方法可以把Winsock的信息立刻发送出去?

解决方案 »

  1.   

    何必管它什么时候发送,只要记住后续的发送操作在发送完毕事件里做就可以了。而不是加DOEVENTS后循环发。
      

  2.   

    没有立即发送的方法。除了doevents
      

  3.   

    关注!
    我也想知道,这个doevents,我用它时总是心里没有底。
      

  4.   

    http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37888&lngWId=1
    http://www.vb-helper.com/tips10.htm
      

  5.   

    根据我的经验,我奉劝各位
    在vb程序中,尽量少用doevents
    虽然可以解决某些奇怪的问题(我就遇到过)。
    尤其是在网络程序中,尽量少用。
    在我的网络程序中,我未使用一句doevents,一样解决的很好。
    楼主说的“那么一般会被放在缓冲区中而不是立刻发送出去”是什么意思?
    其实就是立刻发送出去啊,无论多少字符。
      

  6.   

    to 樓上   未必 我們的服務器都是用vb做的 可以承受幾千號客戶端  基本上用了很多doevents  也沒出什麽問題 基本上很穩定   關鍵看你怎麽設計了 
    那麽多複雜的發送數據   可以使用隊列 自己建立緩衝區阿 之類的方法
      

  7.   

    用在适当的地方应该不会吧,比如我Show很多数据的时候,加Doevents就不至于让程序看起来假死