Передача координат от клиента Java к серверу Java - PullRequest
0 голосов
/ 01 декабря 2009

Во-первых, я знаю, что координаты, вероятно, неправильная терминология? Я бы предположил, что просто передал бы переменные x и y, но координаты описывают это лучше, я чувствую.

Теперь мне нужно иметь сервер, к которому могут получить доступ 2 клиента, это гоночная игра, и она требует, чтобы каждый клиент мог одновременно управлять гоночным автомобилем, каждый из которых использует свою собственную схему управления, но это ни здесь, ни там.

Я надеялся, что кто-нибудь сможет помочь мне, когда дело доходит до отправки x и y позиций гоночного автомобиля на сервер, и чтобы сервер отправлял их следующему игроку, и наоборот, чтобы оба гоночных автомобиля могли двигаться на в то же время на каждом окне клиента. До сих пор я занимался только простыми серверными вещами, такими как сервер детонации на веб-сайте Sun, и простой эхо-сервер, который повторяет строку, которую я посылаю серверу.

Когда я попытался использовать int вместо строки, я получил ошибку, что int, который я хотел передать, был динамическим (очевидно, изменяется с каждым движением) и не может быть передан как статический (используя readInt и writeInt).

Так что любая помощь в том, как создать желаемое движение в обоих клиентских окнах через сервер, была бы признательна.

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 декабря 2009

Крейг, ты рядом. Динамическое / статическое - это недоразумение, оно не имеет никакого отношения к вашей гоночной игре или изменению ценностей. Просто вы не можете десериализовать поля, которые объявлены статическими (или временными), как сказано в javadoc для ObjectInputStream:

Поля, объявленные как временные или статические, игнорируются процессом десериализации.

Решение (надеюсь) простое: удалите модификатор static из ваших целых чисел x / y, который должен решить проблему. Кстати, если бы ваша String была статичной, она бы вышла из строя точно так же.

0 голосов
/ 01 декабря 2009

Простым решением является использование ObjectOutputStream с сериализуемыми объектами :

class Coordinates implements Serializable{...}

ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(new Coordinates(...));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...