Для этого необходимо реализовать keep-alive, то есть с небольшим интервалом постоянно отправлять специальные запросы, а сервер пусть на них отвечает, причем на стандартную реализацию в библиотеке лучше не надеяться, она запросто может зависеть от ОС.
Между прочим, без keep-alive, то есть без активности, соединение закроется само собой через несколько часов, даже не надо никаких сбоев.
А еще связь может пропасть уже при отправке пакета (потеря контакта в разъеме и т.п.), а потом опять возобновиться, тогда все пройдет без всяких Exception, но принимающая сторона получит поврежденный пакет (с нулевыми байтами начиная с какого-то номера), поэтому принимающая сторона должна проверять пакет и перезапрашивать при необходимости (отправлять специальный запрос, который перезапрашивает этот пакет), с обратной стороны снова проверка, и так до бесконечности, пока сеанс не пройдет успешно.
Наконец, надо проверить, не могут ли 2 пакета "слиться" в 1 при частой отправке, и если могут, то принять меры - обозначить искусственные границы.
Довольно сложный алгоритм получается. Еще хорошо, что сеть локальная, и в ней нет ботов, да и риск сбоев ниже.