Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2018, 10:29   #1
sameuser
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 22
По умолчанию Можно ли отслеить закрытие серверного сокета со стороны клиентского сокета?

Привет.
Есть у нас сервер и есть клиент, подключенный к серверу.
Сделали мы какое-то действие и решили закрыть серверный сокет.
Как клиент может узнать об этом?

Фрагмент сервера:

Код:
...
sockOutput.writeUTF("CLOSING_NOW");
sockOutput.flush();
...
try
{
      Socket.close();
}
catch (IOException e)
{
      e.printStackTrace();
      System.err.println("Socket not closed");
}
System.out.println("Socket closed");


На стороне клиента у нас:
Код:
try
{
    DataInputStream sockInput = new DataInputStream(socket.getInputStream());

    while ( true )
    {
        query = sockInput.readUTF(); // ждем сообщений с сервера
        System.out.println(">>> " + query);
    }
}

catch ( IOException exx )
{
    System.out.println("IOException");
}

finally
{
    System.out.println("closing...");
    socket.close();
}
Вот если от сервера отключается клиент, то на стороне сервера сразу выбрасывается исключение - connection reset. Видно, что клиент отключился.
А если отключается сервер, то со стороны клиента как узнать? Можно попытаться отправить что-то на сервер, который уже отключен, и получить IOException. А без отправки?
sameuser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка сокета Андрей Цапко C/C++ Сетевое программирование 3 16.10.2017 01:14
Не получается узнать ip адрес удаленной стороны сокета Андрей Цапко C/C++ Сетевое программирование 7 07.09.2017 15:12
как в Qt можно задать команду закрытия сокета аналогично для close(SocketFd); ? NellyM Помощь студентам 1 08.12.2016 07:56
Создание серверного сокета sasha465 C/C++ Сетевое программирование 3 11.04.2012 18:16
Определение сокета SLASH_CyberPunk Работа с сетью в Delphi 3 21.07.2008 13:02