Следуя моим предыдущим вопросам, я попытаюсь прояснить одну из проблем, с которыми я столкнулся.Программирование сокетов Java
Я пытаюсь создать многопользовательскую версию PacMan.
Простой обзор того, как я сделал свое приложение, заключается в том, что у меня есть сервер с сервером, который постоянно прослушивает определенный порт. Как только клиент подключается, он создает поток, в котором происходит вся передача данных. Сначала он прослушивает направление, в котором клиент хочет переместить, а затем отправляет обновления обратно клиенту. На стороне клиента это обратное направление отправки, а затем ожидание получения обновления. Это делается с использованием ObjectOutput/Input Streams. Существует также игровой класс, который имеет всю логику игры, и у этого есть игровой цикл, который каждый цикл вызывает каждый из подключенных игроков serverThread.exchangeDatas().
Моя игра работает нормально с подключенным одним клиентом, но как только присоединяется другой клиент (локально это все, что я тестировал, но это должно работать правильно?) Это разбило мою игру в потоке сервера, вызвав следующую ошибку: java .io.StreamCorruptedException: неверный код типа: 00.
Является ли код, который отключает это исключение
Object o = in.readObject();
if (o instanceof Direction)
{
// Get new location
player.setDirection((Direction) o);
//System.out.println("Got: " + (Direction)o + " new location: " + player.getNextLocation());
}
// Send gameState
//System.out.println("Sending data");
Data data = new Data(game.getGameState(), game.getScared(), game.getScareLeft(), player.getLives(), player.getScore());
out.flush();
out.writeObject(data);
out.flush();
out.reset();
ServerThread code (the one that crashes in the exchangeData method
Game loop code - line 42 is what calls the exchange data method
Любая помощь будет удивительно с этим.
http://www.mediafire.com/download.php?nwwqmzywfom
вот скачать для клиента и сервера (они NetBeans проекты)
Извините за мой грязный код = [
awm ... У меня нет ничего, чтобы видеть файлы rar (и не хочу иметь: P) Стоп-функция тоже очень полезна. :) – OscarRyz