解决方案 »

  1.   

    TCP是可以保证的,但UDP不一定。
      

  2.   

    Sleep也不能完全保障,最好的方式是做应答,对方告诉你收完了,你发下一个,多好。
      

  3.   

    如果数据量大,socket缓冲区满,send只把buffer中一部分数据send出去,而没有返回错误,这时继续发送其它数据,就会出错。
    Sleep是解决的一个办法,但不是好办法。接收端如果recv足够快,send是可以不Sleep的。一般recv之后都有数据处理的操作,可以把这些操作和recv作成两个线程,以解决这个冲突。而且可以自己写一个辅助send函数,用以确认将buffer中全部数据发送成功,而不是一部分数据。请参考windows网络编程。
      

  4.   

    我和Mega1212(MeGa)  的想法一致.呵呵.在DELPHI中,为就是用开辟缓冲区实现的.