Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

Код:

...
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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


09:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru