使用Socket.Receive的大缓冲区是否会增加WSAENOBUFS SocketError的风险?

时间:2012-09-25 07:49:08

标签: c# windows sockets network-programming

我们收到的错误是操作系统无法分配更多的TCP缓冲区(SocketError = WSAENOBUFS)。这基本上是因为机器内存不足。

但我想知道通过使用非常大的缓冲区调用Socket.Receive是否可以使这种情况变得更糟。当我们提供大缓冲区时,Windows是否需要分配更多的TCP缓冲区?

1 个答案:

答案 0 :(得分:0)

如果你提供一个大缓冲区,它是提供的。 Windows不必分配它:你做到了。指定一个大于套接字接收缓冲区本身的缓冲区并没有多大意义,因为它永远不会被填充。