Вы хотите обработать событие, которое you закрывает сокет, или событие, когда «другая сторона» закрывает сокет? В первом случае вы можете создать подкласс Socket и добавить обработчики, вызываемые при вызове close.
В последнем случае проблема заключается в том, что это не определяется автоматически, и что надежное обнаружение может быть затруднено и зависит от протокола, используемого для связи через сокет. Смотрите, например это ТАК вопрос. В общем случае вам придется принять меры, чтобы определить, была ли розетка на самом деле закрыта другой стороной. Если это так, вам нужно будет принять меры. Какое бы действие вы ни предприняли, вы можете убедиться, что оно также вызывает обработчики обратного вызова, которые вы зарегистрировали для этого действия.