0
我有一个异步套接字应用程序,我试图设置更好地处理异常。当套接字异常被捕获时,我关闭套接字并将它们带回“连接”屏幕,尝试重新连接套接字。问题是 - 当试图重新连接时,我得到一个当前套接字被丢弃的错误。无法访问处理的套接字
当我尝试重新连接时,有没有办法检查套接字是否被丢弃,如果是的话,重新实例化套接字?
catch (Exception e)
{
ShutDownAfterException();
Console.WriteLine(e.ToString());
Console.WriteLine("From ReceiveCallback");
}
private void ShutDownAfterException()
{
Client.Shutdown(SocketShutdown.Both);
Client.Close();
Client = null;
Stop();
Application.Current.Dispatcher.BeginInvoke(
DispatcherPriority.Background,
new Action(() => Messenger.Default.Send<NavigateMessage>(new NavigateMessage(ConnectViewModel.ViewName, this))));
}
由于您的代码首先处理它,因此套接字始终会在您重新连接的时刻处理。鉴于此,只需重新实例化套接字而不检查它是否已丢弃。 –