안드로이드 개발 질문/답변
(글 수 45,052)
갤S에서 PC로 이미지파일을 전송해야하는데
소켓을 이용한 서버(PC) - 클라이언트(갤S) 방식으로 제작중에 문제가 발생했습니다.
서버부분
byte buf[] = new byte[1024];
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("파일명"));
BufferedInputStream bin = new BufferedInputStream(client.getInputStream());
int num=0;
while((num=bin.read(buf))!=-1){
bout.write(buf, 0, num);
bout.flush();
}
클라이언트 부분
byte buf[] = new byte[1024];
BufferedInputStream bin = new BufferedInputStream(new DataInputStream(new FileInputStream("파일경로")));
BufferedOutputStream bout = new BufferedOutputStream(new DataOutputStream(socket.getOutputStream()));
int num=0;
while((num=bin.read(buf))!=-1){
bout.write(buf, 0, num);
bout.flush();
}
이렇게 했는데요 ..
애뮬레이터에션 잘 전송되는데 갤S에 올려서 하니깐 버퍼가 한번 안 보내지는지..
전송된 용량이 쪼끔 차이가 나네요.. (예) 원사이즈:88560 ==> 전송사이즈:72659
전송이 완료안되서 이미지가 안열림...
에뮬레이터에선 정상동작하는데.. 갤S의 문제인가요??해경방법이 있을까요??ㅠ
소켓을 이용한 서버(PC) - 클라이언트(갤S) 방식으로 제작중에 문제가 발생했습니다.
서버부분
byte buf[] = new byte[1024];
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("파일명"));
BufferedInputStream bin = new BufferedInputStream(client.getInputStream());
int num=0;
while((num=bin.read(buf))!=-1){
bout.write(buf, 0, num);
bout.flush();
}
클라이언트 부분
byte buf[] = new byte[1024];
BufferedInputStream bin = new BufferedInputStream(new DataInputStream(new FileInputStream("파일경로")));
BufferedOutputStream bout = new BufferedOutputStream(new DataOutputStream(socket.getOutputStream()));
int num=0;
while((num=bin.read(buf))!=-1){
bout.write(buf, 0, num);
bout.flush();
}
이렇게 했는데요 ..
애뮬레이터에션 잘 전송되는데 갤S에 올려서 하니깐 버퍼가 한번 안 보내지는지..
전송된 용량이 쪼끔 차이가 나네요.. (예) 원사이즈:88560 ==> 전송사이즈:72659
전송이 완료안되서 이미지가 안열림...
에뮬레이터에선 정상동작하는데.. 갤S의 문제인가요??해경방법이 있을까요??ㅠ
갤s 소켓 전송시에 문제가 있는듯 합니다. 저도 예전에 그런 증상을 겪었구요... 다른 기기에서(갤a 모토로이)되는데
갤s에서만 결과값과 과정을보면 다르더군요...... 혹시 전송할때 따로 쓰레드를 빼서 보내보시는게......