현재 디바이스 끼리 메시지 주고받기까지는 잘되었는데 처음에 둘이 TCP연결이 되면 한개는 서버가 되고 한개는 클라이언트가 되어서 주고 받습니다.
A를 서버라하고 B를 클라이언트라고 할게요 ^^
근데 여기서 문제!! ㅠㅠ 가생겼습니다.
메시지만 주고받을때는 잘됬거든요 이제 처음 연결할때 자신의 사진을 보여주는걸 하려고하는데 저는 B가 미리 설정해둔 사진파일을 A에게로 보내주는걸로 했습니다.
B에서 A로 메시지 넘겨줄때는 Json으로 넘겨줬습니다.
메시지 전달할때 는 이런식오르 넘겨줬습니다.
DataOutputStream output = new DataOutputStream(cSocket.getOutputStream());
jsonMain.put("jsontest", jArray);
output.writeUTF(jsonMain.toString());
받을때는
DataInputStream input = new DataInputStream(socket.getInputStream());
JSONObject json = new JSONObject(input.readUTF().toString());
JSONArray jArray = json.getJSONArray("jsontest");
json = jArray.getJSONObject(0);
이런식으로해서 받았구요.
여기까지는 아주 잘됬습니다.
OutputStream fClient_output = cSocket.getOutputStream();
while ((buff = in.read(buf, 0, 1024)) > 0) {
dSendSize += buff;
fClient_output.write(buf, 0, buff);
fClient_output.flush();
Log.d(tag, "[" + dFileSize + "]Send: " + dSendSize + "(" + buff + ")");
buf = new byte[1025];
}
fClient_output.close();
그림 파일을 B에서 A로 넘겨줄때 입니다 여기서 fClient_output.close()를 안하면 A에서는 계속 이것만 기다리고 close()를 하면 그림파일 다받고 이위에 input에서 에러가 생깁니다 ㅠㅠ
FileOutputStream fOutput = new FileOutputStream(f);
while ((buff = sSocket.getInputStream().read(buf, 0, 1024)) >= 0) {
dRecvSize += buff;
fOutput.write(buf, 0, buff);
fOutput.flush();
Log.d(tag, "RecvSize: " + dRecvSize);
}
fOutput.close();
이건 이제 A에서 받을때입니다.

로그에는 이렇게 찍히구요 ㅠㅠ Json으로 메시지 주는거랑 분할 해서 해야하나요? 해처나갈 방법을 모르겠습니다 ㅠㅠ