条件tcp通讯1、在这种情况下:当缓冲区还剩余1k,你要send 4k的东西,这时返回是成功并发送1k,还是直接是-1,geterror是堵塞?2、设缓冲区8k,当我发送4k的东西,并且已经成功发到缓冲区,然后缓冲区内4k的东西发到目标机器,问:如果当已经发送了1k,这时缓冲区内还剩7k?还是4k?我的意思是缓冲区内的某段完整数据是都发完了才一起清除,还是发了几个字节就清除几个字节?

解决方案 »

  1.   

    缓冲区系统会及时发送出去的,并不会一直留着的.
    只是发送时的缓冲.
    //如果当已经发送了1k,这时缓冲区内还剩7k?还是4k?
    --
    没有数据了,还是8K.
      

  2.   

    我是楼主
    =====================
    我的意思是问缓冲区里的一段tcp数据是像沙漏一样,传几个字节就清除几个字节,还是像发炮弹一样,一个tcp段发送完毕后才一起移除该段数据?比如缓冲区里有个4k的tcp数据段要发送,他是每发送若干个字节(一个ip报),就清除缓冲区中相应的字节,还是等这4k发送完毕了,才一起清除?
      

  3.   

    1、返回是成功并发送1k
    2、如果当已经发送了1k,这时缓冲区内还剩7k
    发了几个字节就清除几个字节.这些问题你编个小程序试一下就明白了