Как обработать AsyncCallback для получения, если нет ответа после Socket.BeginReceive - PullRequest
0 голосов
/ 26 апреля 2019

AsyncCallback после Socket.BeginReceive не вызывается во время инициализации сервера во время запуска.

mSocket.BeginReceive(mBuffer, 0, mBuffer.Length, SocketFlags.None, new AsyncCallback(onReceive), mSocket);
private void onReceive(IAsyncResult result)
{
    if (mSocket == null) return;
    Monitor.Enter(mLockObj);
    mSocket.EndReceive(result);
    //...                       

Нужно ли создавать логику тайм-аута или есть исключительная ситуация, которую я могу поймать и обработать?

1 Ответ

1 голос
/ 26 апреля 2019

Поскольку AsyncCallback, ну, async, он будет ожидать получения в течение неопределенного времени, пока не вернется, поэтому не будет никакого исключения "тайм-аута".

Некоторые параметры были рассмотрены в этой теме , но, чтобы ответить на ваш вопрос, вам, по сути, придется реализовать собственный метод тайм-аута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...