我有一个udp服务正在侦听udp数据报的套接字:
int result = 0;
try
{
result = m_ReceivingSocket.Receive(buffer);
}
catch (SocketException e)
{
Log.Debug("Timed out with socket exception, so no result was found.", e);
}
它每隔1毫秒在一个Timer上执行此操作,因为我尽快收到udp消息很重要。大多数情况下抛出套接字异常,因为套接字将超时。这是因为套接字设置为超时:
receivingSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
不幸的是,当我运行它时,Visual Studio调试器不允许我单步执行代码。它认为另一个线程继续运行,不会让我继续。以前有人见过这个吗?任何人都知道更好的方法从套接字接收而不处理异常?
答案 0 :(得分:0)
您是否尝试过调试条件,将超时更改为无限?
#if (DEBUG)
receivingSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);
#endif