클래스를 정의한 다음 해당 클래스 유형의 개체를 설치합니다. 다른 컴퓨터에서 실행중인 다른 Java 응용 프로그램에이 객체를 투명하게 보내려고합니다. 이것을 달성하기위한 최고의 기술은 무엇입니까?인터넷을 통해 개체 보내기
답변
Java API를 사용하여 객체 스트림을 만들고 모든 직렬화 가능 객체를 보낼 수 있습니다.
보낸 사람의 측면에서 :
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
거의 모든 통신 프레임 워크를 사용하면 하나의 방법으로 네트워크를 통해 물체를 넣거나 할 수 있도록 소켓
A (사실상의) 표준하지만 당신은 이러한 네트워크를 통해 암호화되지 않은 갈 것을 명심해야합니다 이를 구현하려면 웹 서비스을 웹 서비스 (예 : JAX-WS)를 Java 6 번들로 사용하는 것이 좋습니다. Java 첫 번째 샘플 (예 : 주석 사용)은 this tutorial을 참조하십시오. 이것은 꽤 간단하고 쉽습니다.
Socket, RMI, EJB보다 Serialization
과 같은 다른 접근 방법이 있지만 인터넷을 통해 작업 할 때 웹 서비스는 기존 표준 (SOAP, HTTP)에 의존하고 방화벽을 쉽게 다룰 수있는 자연스러운 선택입니다 (다른 모든 솔루션의 경우 실제 문제 일 수 있음).
Java는 ObjectOutputStream (및 ObjectInputStream)을 사용하여 (2 진) 오브젝트 직렬화를 제공합니다. 스트림에는 writeObject()를, 반대쪽에는 readObject()를 사용할 수 있습니다. 이 작업을 위해 필요한 것은 Serializable 인터페이스를 구현하는 것입니다.
수동으로 수행하는 것이 아니라 원격 메소드 호출을 사용하여 한 레벨 위로 가져 가야합니다. RMI를 사용하면 다른 JVM에있는 객체에 대한 메소드를 호출 할 수 있으며 모든 직렬화 및 네트워킹이 실제 수행됩니다.
그리고 바이너리 형식을 사용할 수없는 경우 XML 빈 직렬화도 있습니다. 이 XML 형식은 매우 일반적이며 (자세한 : verbose 및 못생긴), 대체 XML 직렬화를 만드는 인기있는 라이브러리 (예 : XStream)가 있습니다.
- 1. 인터넷을 통해 UDP 패킷 보내기
- 2. 인터넷을 통해 .net 응용 프로그램간에 데이터 보내기
- 3. 인터넷을 통해 암호화되지 않은 암호 보내기
- 4. 인터넷을 통해 시계를 동기화하십시오.
- 5. 인터넷을 통해 FLVPlayback 스트리밍
- 6. 인터넷을 통해 MSMQ 구독
- 7. 데이터 그램 소켓을 통해 개체 보내기 java
- 8. 인터넷을 통해 WCF NetTCP 바인딩
- 9. 인터넷을 통해 VB.NET과 MySQL 연결!
- 10. 인터넷을 통해 응용 프로그램을 배포
- 11. 개체 보내기/직렬화 모범 사례
- 12. 인터넷을 통해 내 PC에서 기능 호출
- 13. 서버 - 인터넷을 통해 RMI를 사용하는 클라이언트 구현
- 14. 인터넷을 통해 Android 마켓 공개 키를 보내십시오.
- 15. 인터넷을 통해 안정적으로 사용자를 식별하는 방법은 무엇입니까?
- 16. 인터넷을 통해 클라이언트가 보낸 데이터 그램을 수신합니다.
- 17. 인터넷을 통해 코드를 실행하는 가장 좋은 방법은
- 18. 인터넷을 통해 WCF/WPF를 사용하는 유형 충실
- 19. Windows에서 인터넷을 통해 패킷을 캡처하고 인쇄하려면 어떻게합니까?
- 20. 인터넷을 통해 프로젝트에서 함께 작업하는 방법은 무엇입니까?
- 21. 클라이언트가 인터넷을 통해 서버에 연결하지 않습니다.
- 22. 그냥 네트워크/인터넷을 통해 델타 저장
- 23. 인터넷을 통해 내 서버에 연결할 수 없습니다.
- 24. iPhone : 인터넷을 통해 데이터베이스에 연결 하시겠습니까?
- 25. 인터넷을 통해 Source Safe를 사용할 수 있습니까?
- 26. 원격 EJB 인터페이스가 인터넷을 통해 작동하지 않습니다.
- 27. 인터넷을 통해 VB.net windows 응용 프로그램을 업데이트하십시오.
- 28. 웹 요청이 인터넷을 통해 어떻게 실행 되었습니까?
- 29. 인터넷을 통해 SQL Server 2005 액세스 가능
- 30. 인터넷을 통해 WCF 서비스에 액세스 하시겠습니까?
인공위성, 인터넷 또는 AM/FM 라디오를 의미합니까? 그렇지 않다면 수업을 볼 수 있습니까? 우리에게 코드 줘! \ o/뭐든지! 만큼 아직 움직이고, 조금 .. – 0scar
BTW, 당신은 그것을 수행하는 방법을 샘플 코드가 아닌 질문을 성취하는 최고의 기술을 요청했습니다. 이것이 기술 사용에 대한 3 가지 대답을 얻은 이유입니다. 샘플 코드를 원한다면 샘플 코드를 요청하면 다른 기술을 사용하거나 동일한 기술을 사용하여 수행하는 방법에 대해 여러 사람들이 제공 한 샘플 코드가 제공되지만 선택해야 할 것이 많습니다. –