TCP/UDP连接的缓冲区问题

跟各位大虾讨论一个问题:关于TCP/UDP连接的缓冲区的问题

使用socket编程的时候,不管是TCP的连接,还是UDP连接,系统都会分配一个缓冲区,当然也可以通过setsockopt函数来设置
缓冲区大小。

我的疑问是:假设TCP/UDP连接的 接收 缓冲区大小为8192字节,我第一包发送的数据长度为8000字节,现在缓冲区还有192字节的空间
现在TCP/UDP是否会接收数据呢?如果接收数据,如果数据长于192字节怎么办呢?如果不接收数据,那是怎么实现让发送方不发送数据的呢?

作者: whyliyi   发布时间: 2011-01-08

UDP的发送缓冲只是可接受数据报的最大大小,没有实际的发送缓冲
TCP的话,如果是默认的阻塞IO,缓冲大小不够时阻塞。

作者: bluewaterray   发布时间: 2011-01-09