Если ваш одноранговый узел действительно просто прекращает отправку данных, в отличие от закрытия соединения, это сложно, и вам придется прибегнуть к асинхронному чтению из этого сокета.
Переведите его в асинхронный режим (документы и Google - ваши друзья) и попробуйте прочитать его каждый раз вместо блокировки чтения. Затем вы можете просто перестать «пытаться» в любое время. Обратите внимание, что по своей природе асинхронный ввод-вывод ваш код будет немного другим - вы больше не сможете предполагать, что после возврата recv
он действительно прочитает некоторые данные.