Определяет класс, а затем я устанавливаю объект этого типа класса. Я хочу отправить этот объект в другое приложение Java, работающее на другом компьютере, прозрачно. Какова лучшая технология для достижения этой цели?Отправка объекта через Интернет
ответ
вы можете создавать потоки объектов с помощью API Java и отправлять любой сериализуемый объект. но вы должны будете возражать, что они идут в незашифрованном виде через сеть:
на стороне отправителя:
CustomObject objectToSend=new CustomObject();
Socket s = new Socket("yourhostname", 1234);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(objectToSend);
out.flush();
и на приемном конце:
ServerSocket server = new ServerSocket(1234);
Socket s = server.accept();
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
CustomObject objectReceived = (CustomObject) in.readObject();
Чтобы начать сериализацию с помощью интерфейса Java Serializable, вам нужно начать. У Sun есть хорошая статья по этому поводу - Discover the secrets of the Java Serialization API.
Обратитесь к Java Sockets tutorial за информацией о фактической передаче сериализованного объекта по сети.
Существует много способов сделать это. Вот некоторые вещи, на которые нужно обратить внимание, и вы можете выбрать тот, который лучше всего подходит для вашего приложения.
- J2EE
- RMI
- Объект сериализации толкая биты через сокет
- WebServices
Практически любая структура связи позволит вам выдвинуть объекты по сети так или другой. Вам просто нужно просмотреть их и посмотреть, какие работы для вашего приложения. Быстрый google должен найти еще больше методов.
А (де-факто) стандартной для реализации этого было бы использовать веб-службу , например, используя JAX-WS, который поставляется в Java 6. См. this tutorial для первого примера Java (то есть с использованием аннотаций). Это довольно легко и просто.
Существуют и другие подходы, такие как Serialization
над Socket, RMI, EJBs но, при работе через Интернет, веб-сервисы являются своего рода естественный выбор, поскольку они опираются на существующие стандарты (SOAP, HTTP) и легко иметь дело с межсетевыми экранами (что может быть реальная проблема для всех других решений).
Java обеспечивает (двоичную) сериализацию объекта с помощью ObjectOutputStream (и ObjectInputStream). Вы можете просто записатьObject() в поток и readObject() на другом конце. Все, что вам нужно сделать для этого, - это реализовать интерфейс Serializable.
Но вместо того, чтобы делать это вручную, вам может быть интересно принять его на один уровень и использовать метод удаленного вызова метода. С помощью RMI вы можете вызывать методы для объектов, которые живут в другой JVM, и вся сериализация и создание сетей происходят под капотом.
И для полноты также существует сериализация XML-бина, если вы не можете использовать двоичный формат. Этот формат XML очень общий (читайте: подробный и уродливый), но есть некоторые популярные библиотеки (например, XStream), которые создают альтернативные сериализации XML.
- 1. Отправка сериализованных объектов через интернет
- 2. Отправка пароля, незашифрованного через Интернет
- 3. Отправка объекта через Интернет и вызов его метода
- 4. Отправка и получение данных через Интернет
- 5. Отправка сообщений через интернет в приложение
- 6. Отправка объекта через $ .post
- 7. Отправка объекта через ObjectOutputStream заблокирован
- 8. SocketException: Отправка объекта через Socket
- 9. Отправка объекта через Serializable crashes
- 10. Предоставление любого объекта Ruby через Интернет
- 11. Отправка формы как объекта через AJAX
- 12. Отправка данных на сервер через почту при возврате интернет-соединения
- 13. Отправка больших файлов (изображений) через Интернет с использованием сервера C
- 14. Отправка и получение данных из приложения через Интернет
- 15. Отправка MP3 через Интернет на телефон по GSM
- 16. Получение текущего состояния игры и отправка его через Интернет
- 17. Отправка объекта void * через очередь сообщений [linux]
- 18. Отправка объекта службе через Intent без привязки
- 19. Отправка объекта через сокет в java
- 20. Отправка объекта без сериализации через Socket
- 21. Отправка объекта XML через HTTP POST
- 22. Отправка объекта через Kryonet вызывает сбой
- 23. Отправка объекта Java через javascript AJAX
- 24. Отправка сложного объекта через JMS в Java
- 25. Отправка объекта с помощью функций через chrome.runtime.sendMessage
- 26. Java: отправка и получение объекта через сокет
- 27. Отправка настраиваемого объекта через Netty динамически
- 28. wsHttpBinding через Интернет
- 29. Широта Долгота через Интернет
- 30. почты Merge через Интернет
Вы имеете в виду, например, спутник, Интернет или AM/FM-радио? Или, если нет, можем ли мы увидеть класс? Дай нам код чувак! \ o/Все! Пока он все еще движется, немного .. – 0scar
Кстати, вы попросили лучшую технологию, чтобы выполнить свой вопрос, а не образец кода, как это сделать. Вот почему у вас есть 3 ответа на использование технологий. Если вам нужен пример кода, попросите образец кода, и вам будет предоставлен образец кода от нескольких людей о том, как это сделать, используя разные технологии или используя то же самое, но у вас будет больше выбора. –