tcp连接,发送端往接受端发送数据,当接受端的接受缓冲区来不及接受而被添满的时候,这时候发送端再次往接受端发送数据的话,会出现什么情况?当接受端接受缓冲区有空间的时候还能接受原来的数据吗? 因为tcp提供流量控制,总是告诉对端它能接受多少字节的数据,从而确保发送端发送的数据不会溢出接受缓冲区,是不是意味着当接受缓冲区满的时候,发送端不能往接受端发送数据.
by xiaozhu2007 - C/C++ - 2008-09-09 17:57:16 阅读(5859) 回复(8)
在tcp的常连接中,如果链路中长时间的没有数据,则tcp链路会自动断掉吗?这就是在系统应用层上增加回响测试报文以维持链路激活的原因吗(echo test)? [ 本帖最后由 jdjkxsl 于 2009-6-1 12:10 编辑 ]
当tcp发送缓冲区满时( 接受缓冲区满), 该进程被阻塞住. 只有当发送缓冲区重新可用时才会从 write() 中返回. 当该进程被阻塞时, 该进程是否进入内核调度队列? 它的发送缓冲区 里的数据是内核帮它发还是该进程自己在内核态 继续发送?
tcp传输是流的方式。 当一个server 在recv的时候可能一个client发送多个包一起到达server, 而server却当成一个包收到,请问这应该怎么办? 谢谢.... [ 本帖最后由 ruchong 于 2007-5-18 17:53 编辑 ]
在UnixWare7.1.3系统下: ftp_bey为什么不能关掉连接,还有TIME_WAIT,或close_WAIT! 长久后,就出现:打开文件太多的错误! 为什么?请高手指点!
因为tcp数据是流方式发送的就有可能 client 发送两次数据50 , 50 server可能一次接受100 请问这种问题怎么解决比较好: 我常用的方法是发送数据的前四个字节当做数据的长度,这样就能正常解决 , 但是这样的话,发送的把包打上数据的长度, 收到包的解包, 效率能差一点 , 请问大家还有好的办法吗... 谢谢...