Decrypt packets - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 08.08.2013, 14:34   #1
Аватар для Sun
Пользователь

Автор темы (Топик Стартер) Decrypt packets

Всем привет! Хроники IT. Ядро самопал. Суть проблемы: не получаеться decrypt packets.
Код:
Exception in thread "Thread-0" java.lang.NegativeArraySizeException
Help!!!!
Sun вне форума Ответить с цитированием
Непрочитано 08.08.2013, 14:36   #2
Аватар для Visor

По умолчанию Re: Decrypt packets

NegativeArraySizeException - негативный размер массива, ошибка
__________________
L2Emu Enterprise Server
Visor вне форума Отправить сообщение для Visor с помощью ICQ Отправить сообщение для Visor с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2013, 14:56   #3
Аватар для Sun
Пользователь

Автор темы (Топик Стартер) Re: Decrypt packets

А так
Код:
public void read(ByteBuffer buffer) {
		int size =  buffer.getShort();
		
		int position = buffer.position();
		
		decrypt(buffer, position, size);
		
		int id = buffer.get();

		switch(id) {}
}
Код:
public void decrypt(ByteBuffer buffer,int offset,int size) {
		try { //LoginCrypt crypt 
			crypt.decrypt(buffer.array(), offset, size);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
Sun вне форума Ответить с цитированием
Непрочитано 08.08.2013, 17:23   #4
Аватар для n3k0nation
Antihero

По умолчанию Re: Decrypt packets

На Ваш вопрос нет однозначного ответа Т.к. Вы даже не выложили полную трассировку стека при исключении. Начинайте лучше отлаживать приложение.
Пара советов. Следите за позицией и размером буфера. Так же уделите внимание тому, что в одном байт-буфере может быть несколько пакетов (если используется mmocore), так же у Вас может быть неполный пакет в буфере, а остальная часть может приходить со следующим пакетом
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 09.08.2013, 05:23   #5
Аватар для Sun
Пользователь

Автор темы (Топик Стартер) Re: Decrypt packets

Не получаеться по дружить authserver c gameserver

Добавлено через 26 минут
Код:
    private ByteBuffer buffer = ByteBuffer.allocate(65536).order(ByteOrder.LITTLE_ENDIAN);
    private Selector selector;

    public Controller() throws IOException {
        selector = Selector.open();
    }

    public void register(Selection selection) throws IOException {
        selection.setController(this);

        selection.register(this);
    }

    @Override
    public void run() {
        while (true) {
            int num = 0;

            try {
                num = selector.selectNow();
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }

            if (num > 0) {
                Iterator<SelectionKey> keys = selector.selectedKeys().iterator();

                while (keys.hasNext()) {
                    SelectionKey key = keys.next();

                    Selection selection = (Selection) key.attachment();

                    keys.remove();

                    System.out.println((key.isAcceptable()?"OP_ACCEPT ":"") + (key.isConnectable()?"OP_CONNECT ":"") + (key.isReadable()?"OP_READ ":"") + (key.isWritable()?"OP_WRITE ":""));

                    switch (key.readyOps()) {
                        case SelectionKey.OP_ACCEPT: {
                            ((SelectionServer) selection).accept();

                            break;
                        }
                        case SelectionKey.OP_CONNECT: {
                            selection.connect();

                            break;
                        }
                        case SelectionKey.OP_WRITE: {
                            selection.tryWrite(buffer);

                            break;
                        }
                        case SelectionKey.OP_READ | SelectionKey.OP_WRITE: {
                            selection.tryWrite(buffer);

                            selection.tryRead(buffer);

                            break;
                        }    
                        case SelectionKey.OP_READ: {
                            selection.tryRead(buffer);

                            break;
                        }
                    }
                }
            }

            try {
                Thread.sleep(10);//TODO config
            } catch (InterruptedException e) {
            }
        }
    }
Controller
Если нужно выложу другие части кода. Не буду засерать форум кодом.

Последний раз редактировалось Sun; 09.08.2013 в 05:49. Причина: Добавлено сообщение
Sun вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Server>Client Packets Astend Lineage II 4 22.06.2013 19:00
Clent packets elastic Lineage II 2 21.10.2012 16:33
Обсуждение ревизий (Aion-Unique) zaqwer Серверная часть 803 04.10.2010 15:17
Соединение с игровым сервером было прервано. Decrypt fail! Karat Серверная часть 5 17.03.2010 20:57
Нужна помощь по l2jfree nelegal Lineage II 9 20.12.2009 04:29


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 08:43. Часовой пояс GMT +3.

Вверх