DatagramChannel бесконечное ожидание пакетов

154
23 декабря 2019, 08:10

пишу простенький клиент и сервер на UDP, по заданию в клиенте необходимо использовать DatagramChannel, т.к. UDP протокол не надёжен, то при отправке сообщений сервер обязательно должен отсылать сообщения об ответе, немного не пойму, как правильно реализовать, чтобы клиент бесконечно не ждал пакетов от сервера, пример запроса прилагаю:

channel = DatagramChannel.open();
       // channel.socket().setSoTimeout(timeout);
        address = new InetSocketAddress(hostname, port);
        //channel.configureBlocking(false);
        channel.connect(address);
public ServerMessage doRequest(String command, Alice argument)throws IOException, ClassNotFoundException{
        try {
            ClientMessage message = new ClientMessage(command, argument);
            sendedstreambuffer = new ByteArrayOutputStream();
            sendedstream = new ObjectOutputStream(sendedstreambuffer);
            sendedstream.writeObject(message);
            sendedstream.flush();
            ByteBuffer buffer = ByteBuffer.wrap(sendedstreambuffer.toByteArray());
            buffer.flip();
            channel.send(buffer, address);
            buffer.clear();
            channel.receive(buffer);
            receivedsteam = new ObjectInputStream(new ByteArrayInputStream(buffer.array()));
            return (ServerMessage) receivedsteam.readObject();
        }catch (PortUnreachableException e){
            return new ServerMessage(SpecialMessage.TIMEOUT, "===\nСервер не доступен.");
        }
    }

Так же не могли бы вы подсказать, как мне от DatagramChannel принимать пакеты с помощью DatagramSocket

READ ALSO
Подключение javax.media

Подключение javax.media

работаю над сравнением фотографий и набрел на сайт https://webarchive

172
Как сохранить состояние меню?

Как сохранить состояние меню?

Имеется невидимая группа элементов меню:

131
Как правильно задать transition для z-index?

Как правильно задать transition для z-index?

Есть несколько карточек, они частично лежат друг на другеКак сделать так чтобы при наведении на карточку она появлялась перед всеми карточками...

162
Мобильная адаптация в swiper

Мобильная адаптация в swiper

Столкнулся с библиотекой слайдеров swiper, версия Swiper 34

593