안드로이드 개발 질문/답변
(글 수 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의 문제인가요??해경방법이 있을까요??ㅠ
너무 급해서 다시 올립니다ㅠ 전송부분 쓰레드로 구현해봣는데도 안되네요..
버퍼 사이즈를 이미지 사이즈로 생성해서 한방에 보내도 안되고요....ㅠ
갤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의 문제인가요??해경방법이 있을까요??ㅠ
2010.09.02 00:03:08
FileOutputStream fStream = new FileOutputStream(file); // File file;으로부터 OPT스트림을 가져옴
BufferedInputStream biStream = new BufferedInputStream(connection.getInputStream()); // URLConnection 으로부터 IPT스트림을 가져옴
int length = 0;
byte[] buffer = new byte[8192]; // 8192는 그냥 개인 입맛이지용 ㅋ
while((length = biStream.read(buffer)) != -1) {
fStream.write(buffer, 0, length);
}
biStream.close();
fStream.close();
BufferedInputStream biStream = new BufferedInputStream(connection.getInputStream()); // URLConnection 으로부터 IPT스트림을 가져옴
int length = 0;
byte[] buffer = new byte[8192]; // 8192는 그냥 개인 입맛이지용 ㅋ
while((length = biStream.read(buffer)) != -1) {
fStream.write(buffer, 0, length);
}
biStream.close();
fStream.close();
클라이언트에서 파일저장시킬때
그냥 FileOutputStream 했고
받아올땐 BufferedInputStream 썼는데 잘되는군요