Как читать двоичные данные из сокета с Apache MINA? - PullRequest
0 голосов
/ 29 марта 2012

Я знаю, что сервер отправляет поток MP3 после подключения к нему и отправки нескольких байтов. Как читать это передача с Apache MINA? Можете ли вы привести какие-либо примеры, пожалуйста?

1 Ответ

5 голосов
/ 05 апреля 2012

Вам нужен клиент для чтения данных с сервера. Если возможно установить TCP-соединение с сервером, вы можете получить справку из этого руководства на TCP-клиенте Apache MINA

[ОБНОВЛЕНО] Данные будут получены в ClientSessionHandler messageReceived. Вы можете переопределить эту функцию в соответствии с вашими потребностями. Вы можете просмотреть пример SumUp , чтобы полностью понять его.

[ОБНОВЛЕНИЕ 2] Чтобы получить байты в вашем случае, вам придется немного обновить messageReceived вашего обработчика сеанса. Вы можете использовать IoBuffer для чтения байтов. Примерно так:

public void messageReceived(IoSession session, Object message) {

            if (message instanceof IoBuffer) {

                IoBuffer buffer = (IoBuffer) message;
                byte[] b = new byte[buffer.remaining()];
                buffer.get(b);
            }
    }
...