Я думаю, что это должно быть обнаружено как событие при подключении к клиенту, как и в любой другой архитектуре клиент / сервер.
Если вы используете сокеты, сокет в конечном итоге зарегистрирует, что одна сторона закрыла сокет (когда произойдет сбой процесса, его конец сокета будет закрыт), и вы можете обнаружить это, ищите клиента-владельца на сервере. записи и очистить все ресурсы.
Было бы очень странно, если бы сервер напрямую (через идентификаторы процессов или что-то еще) искал клиентов, и это также излишне ограничило бы вашу архитектуру для работы только локально, а не по сети.