C# SocketError.NoBufferSpaceAvailable

C# SocketError.NoBufferSpaceAvailable,c#,sockets,C#,Sockets,我的应用程序通过套接字输出UDP消息。到目前为止,这一切都很好,但最近在虚拟化操作系统上的部署给我带来了SocketExceptions的问题,SocketError NoBufferSpaceAvailable 在正常情况下,UDP消息每1秒传输一次。然而,我经常看到一行中的2-3条消息受到上述异常的影响。处理这一问题的最佳策略是什么?我想到的策略是: int trials = 0; while(trials <= 5) { try { trials++;

我的应用程序通过套接字输出UDP消息。到目前为止,这一切都很好,但最近在虚拟化操作系统上的部署给我带来了SocketExceptions的问题,SocketError NoBufferSpaceAvailable

在正常情况下,UDP消息每1秒传输一次。然而,我经常看到一行中的2-3条消息受到上述异常的影响。处理这一问题的最佳策略是什么?我想到的策略是:

int trials = 0;
while(trials <= 5)
{
    try
    {
        trials++;
        _socket.Send(...);
    }
    catch(SocketException e)
    {
        if(e.SocketErrorCode == SocketError.NoBufferSpaceAvailable)
        {
            Thread.Sleep(100);
        }
        else
        {
            throw;
        }
    }
}
int-trials=0;

while(trials)您必须检查发送数据包的大小。另外,您是否有一个字符或序列告诉服务器它已经结束了?

因此,我从一个适当的偏移量发送类似的内容,直到整个缓冲区都被传输为止?