갤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의 문제인가요??해경방법이 있을까요??ㅠ