안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 간단한 채팅 프로그램 짜고있는데요
서버는 MFC로 제작 , 클라이언트는 안드로이드로 제작햇습니다.
MFC에서 구조체를 정의햇어요
typedef struct Test// {
int clientid;
Rs rs; // <=== typedef enum으로 만든 자료형
int age;
}Test;
그리고 서버에서 버튼을 누루면 클라이언트에게 Test 구조체를 보냅니다.
안드로이드에서는
1.Test클래스를만들고 implements Serializable 해서 직렬화가능하게 햇어요 (enum형 의 크기가 4바이트라 Int형으로 만듬)
2. Socket역할을 하는 스레드를 상속받은 클래스를 정의해서 서버와 연결하는데 성공햇습니다.
이 Socket클래스에 Run부분에
이렇게 햇는데 서버에서 버튼을누루면 안드로이드에서 다음과같은 에러가납니다.
java.io.streamcorruptedException
at java.Io.ObjectInputStream .readStreamHeader(ObjectInputStream.java)
at java.io.ObjectInputStream <init>(ObjectInputStream.java)
at 패키지명 .run()
at java lang.Thread run(Thread java)
이거때문에 고생이많내요 아시는분 도움좀 주세요
서버는 MFC로 제작 , 클라이언트는 안드로이드로 제작햇습니다.
MFC에서 구조체를 정의햇어요
typedef struct Test// {
int clientid;
Rs rs; // <=== typedef enum으로 만든 자료형
int age;
}Test;
그리고 서버에서 버튼을 누루면 클라이언트에게 Test 구조체를 보냅니다.
안드로이드에서는
1.Test클래스를만들고 implements Serializable 해서 직렬화가능하게 햇어요 (enum형 의 크기가 4바이트라 Int형으로 만듬)
2. Socket역할을 하는 스레드를 상속받은 클래스를 정의해서 서버와 연결하는데 성공햇습니다.
이 Socket클래스에 Run부분에
try { client = new Socket("203.244.147.16",5202); Log.d("TCP", "C: Connecting..."); InputStream is = client.getInputStream(); ObjectInputStream ois = new ObjectInputStream(is); OutputStream os = client.getOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(os); while(true) { try { Test test =null; test= (Test)ois.readObject(); Log.d("TCP", "ReadTest : "+datapack.toString()); } catch(ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); ois.close(); is.close(); oos.close(); os.close(); client.close(); return; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
이렇게 햇는데 서버에서 버튼을누루면 안드로이드에서 다음과같은 에러가납니다.
java.io.streamcorruptedException
at java.Io.ObjectInputStream .readStreamHeader(ObjectInputStream.java)
at java.io.ObjectInputStream <init>(ObjectInputStream.java)
at 패키지명 .run()
at java lang.Thread run(Thread java)
이거때문에 고생이많내요 아시는분 도움좀 주세요