2012-12-15 5 views
1

나는 서버 유형으로 작동하는 java로 작성된 프로그램을 가지고있다. 나는이 개체를 Tcp 소켓에서 전화기로 보낼 필요가있다.어떻게하면 TCP 소켓을 통해 객체를 안드로이드 장치에 보낼 수 있습니까?

이전에는 PrintWriterDataInputStream을 통해 문자열 데이터를 전달했습니다. 나는 ObjectInputStream 시도하려고했는데 다른 자바 버전 등으로 인해 크로스 플랫폼에서 실패 할 수도 있다고 들었습니다. 제 객체는 serilizable입니다.

답변

3

here과 같은 JSON 시리얼 라이저를 사용하면 일반 PrintWriter 시스템을 그대로 사용할 수있는 매우 읽기 쉬운 문자열로 개체를 변환 할 수 있습니다. 문자열을 스트림에 쓴 다음 다른 끝에서 복원하면됩니다. 단순한.

+0

그리고이 모든 것이 하나의 단일 라인으로 전송됩니까? 한 줄당 소켓 문자열 크기 제한 같은 것이 있습니까? 어떤 것을 복잡하게 만들 수 있습니까? 전에 JSON을 사용 해본 적은 –

+0

JSON은 일종의 직렬화 일뿐입니다. 인기있는 후보가되는 Java 버전 메타 데이터를 포함하지 않습니다. protobufs도 볼 수 있습니다. 패킷의 MTU 제한이 있으며 조각화되는 패킷의 가능성이 있지만 TCP가 스트림 프로토콜이므로 코드에서이 패킷을 처리해야합니다. 이에 대한 자세한 정보가 필요하면 알려주십시오. –

+0

연구없이 잘 고려해야 할 것은 프로토 버퍼, MTU 한도가 전혀 없다는 것입니다. 이것은 객체로 ArrayList 을 전송할 때 올바르게 작동해야합니다. 마지막으로 TCP의 스트림 프로토콜이 본질적으로 그것들을 처리하기 때문에 조각이나 크기 제한에 대해 걱정할 필요가 없다는 것을 의미합니까? 감사합니다 –

관련 문제