我的应用程序通过套接字输出UDP消息。到目前为止,这种方法工作得很好,但最近部署到虚拟化操作系统后,我在使用SocketExceptions和SocketError NoBufferSpaceAvailable时遇到了问题。
在正常情况下,每1秒发送一条UDP消息。然而,我经常看到连续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;
}
}
}在这种情况下,标准方法是什么?
发布于 2013-01-27 20:24:12
你必须检查你的发送包的大小。另外,你有没有一个字符或序列告诉服务器它已经结束了?
https://stackoverflow.com/questions/14547097
复制相似问题