[英]Does a large buffer with Socket.Receive increase the risk of a WSAENOBUFS SocketError?
We are getting an error that the operation system could not allocate more TCP buffers (SocketError=WSAENOBUFS). 我们收到一个错误,指出操作系统无法分配更多的TCP缓冲区(SocketError = WSAENOBUFS)。 This is basically because the machine is running out of memory.
这基本上是因为计算机内存不足。
But I was wondering if such a situation can be made worse by calling Socket.Receive with a very large buffer. 但是我想知道通过使用非常大的缓冲区调用Socket.Receive是否会使这种情况变得更糟。 Does Windows need to allocate more TCP buffers when we supply a large buffer?
当我们提供大缓冲区时,Windows是否需要分配更多的TCP缓冲区?
If you supply a large buffer, it's supplied. 如果提供较大的缓冲区,则将提供它。 Windows doesn't have to allocate it: you did.
Windows不必分配它:您已经分配了。 There isn't much point in specifying a buffer larger than the socket receive buffer itself, as it can never be filled.
指定一个比套接字接收缓冲区本身更大的缓冲区没有什么意义,因为它永远无法填充。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.