FrameWork 2.0
Имеются сервер и клиент
между ними устанавливается асинхронное соединение черес сокеты
все работает, данные передаются в обе стороны и принимаются нормально
но как только я убиваю клиента например, сервер падает с ошибкой
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
В интернете пол дня ищу решение, но видимо не с того конца ищу.
Хотелось бы понять как при работе с сокетами отловить падение клиента и культурно сообщить од этом пользователю сервера
вот так детально выглядит стек:
System.AccessViolationException was unhandled
Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source="System"
StackTrace:
at System.Net.UnsafeNclNativeMethods.OSSOCK.WSAGetOverlappedResult(SafeCloseSocket socketHandle, IntPtr overlapped, UInt32& bytesTransferred, Boolean wait, IntPtr ignored)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
отловить бы по идее это записать в лог сервера инфу об отвале клиента и перестартнуть сервер но как ловить ?