Здравствуйте, sshurov, Вы писали:
S>Пролистал форум — видел что вроде обсуждалось уже, но ответа так и нет...
S>... собственно вопрос — как можно определить что сокет на клиенте (да впрочем и на сервер) закрыт?
Не понятно с какой стороны находится код в котором нужно это определить.
Если сокет открыл ты — у тебя есть ссылка на объект класса Socket или ServerSocket. в 1.4 у них появилсия вызов isClosed() который вернет состояние "закрытости" сокета. До 1.4 к сожалению никак проследить нельзя (только если не вызывать операции IO на зактрытом сокете и ловить исключения. Поэтому рекомендую инкапсулировать работу с сокетом в некий класс и в нем отслеживать вызов socket.close().
Если ты имеешь ввиду на другой стороне соединия — то только ловить исключения IO.
S>может быть есть другие пути? может както через UDP двигаться както (правда это не надежно — никто не гарантирует доставку UDP пакета)?
Особенно если на том конце ждут TCP соединения.