Я использую простую реализацию TCPCl inet и TCPListener для моего клиента / сервера. Но у меня есть проблема с обнаружением клиентов, которые успешно прочитали все данные. Моя проблема в том, что я иногда получаю сообщение об ошибке «Существующее соединение было принудительно закрыто удаленным хостом». Я предполагаю, что проблема здесь на стороне сервера:
await pClient.GetStream().WriteAsync(pBuffer, pOffset, pCount);
pClient.Close();
Как вы видите в коде выше - я закрываю tcpclient сразу после того, как все данные были записаны, но я не знаю, правильно ли клиент уже прочитал все данные. Есть ли какой-нибудь хороший способ, как обнаружить, что все данные были получены, или мягко отключить клиент (и разрешить чтение записанных данных), или что-то еще? Сейчас я сделал грубое исправление с задержкой надстройки перед pClient.Close (), но это не правильное решение.