socket接收缓冲区设置为2M,那么是不是对端发2M数据,就满了(通讯的高手来,坐等结贴)
如果接收端的socket接收缓冲区设置为2M, 并且一直不从缓冲区把数据"拿走(就是recv)",是不是发送端发送2M数据后, 接端的接收收缓冲就区满了?,发送端就发不了数据了?个人认为是这样的,但是我们leader说肯定比2M要大,大概3M左右,不知道会不会这样。当然我会做个试验看看,但是又怕做了试验但是因为方法不对导致了错误的结论。求大神们赐教。
还有就是select的时候,如果select检测缓冲区中有数据,但是没有及时去收,等待大概500ms再去收,这期间对端socket主动断开了,服务端的socket再去recv还能收到数据吗?是不是对端一断链,这边的socket就被"复位",句柄变为无效。不能再收数据了?
不知道这些知识在哪本书里可以学的到。多谢大家回复!