마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드-자바 소켓 ObjectInputStream 문제

0 추천
클라이언트 객체 보내기

ObjectOutputStream oos = new ObjectOutputStream(m_socket.getOutputStream());
 NetworkSerialize ns1 = new NetworkSerialize(); 
ns1.name(name1);
ns1.age(age1);
oos.writeObject(ns1);
oos.flush();


서버쪽 객체 받기

 ObjectInputStream ois = new ObjectInputStream(is);
 NetworkSerialize ns = (NetworkSerialize)ois.readObject();
System.out.println("네트워크 전송된 객체는 " +ns.toString());
ois.close();

서버에 뜨는 오류

java.io.StreamCorruptedException: invalid stream header: 73720014
 at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
 at java.io.ObjectInputStream.<init>(Unknown Source)
 at TCPtest.TCPserver.run(TCPserver.java:67)
 at java.lang.Thread.run(Unknown Source)

 

서버는 자바로, 클라이언트를 안드로이드로 해서 소케통신을 하고있는데요 초보자라 그런지 어렵고 헷갈리네요 ㅠ

Serializable를 통해 객체직렬화를 하고 안드로이드에서 ObjectOutputStream으로 넘겨줫습니다.

그리고 서버에서  ObjectInputStream으로 받아오려고 하는데 서버에서만 위와 같은 오류가 뜨네요 ㅠㅠ

자바언어와 자바언어끼리의 통신은 따로 헤더가 필요없지않나요?? 필요하다면 어떤식으로 넘겨주고 어떤식으로 받아야하나요??ㅠㅠ 도와주세요

 

공부하고싶어요 (170 포인트) 님이 2014년 12월 18일 질문

1개의 답변

0 추천
java serialize를 사용하지 마세요. 이기종 간에 정상동작을 보장하지 않습니다.
익명사용자 님이 2014년 12월 18일 답변
...