안녕하세요, 날씨는 추우신데 감기는 안걸리셨나요..?

 

저는 몸살감기 걸려서 어제 궁디에 주사 놓고 왔습니다..ㅠ.ㅠ

 

여러분 모두 감기 조심하세요 흑흑....

 

 

다름이아니라, 안드로이드에서 컴퓨터로 파일을 전송하는 어플을 만들어보고 있는데요~

 

방식은 TCP/IP 소켓통신이머 Wifi 내부망에서 작동해보았습니다.

 

1보낸 이미지 크기는 10.8KB 입니다. 기존에 100KB정도 되는파일 해보다가 바꿔보았습니다.

 

전송은 아주 잘 됩니다... 그런데!!

 

몇가지 증상이 있습니다....! 

 

1. 이미지 짤림은 다음과 같이 나옵니다...

 

 

 2. null이라는 확장자도 없는 파일이 함께 1 + 1 행사하듯이 보내집니다...(뜨헉..)

 

 

 

 

 

 

 

파일관련된 부분은 처음이라 이정도까지밖에 설명을 못드리네요 ㅠㅠ

대신 각 소스코드 올려바치겠나이다 ( _ _ )

Android Activity 파일전송 부분

        try {
           Log.i("로그","두번째이상 클릭");         //★★★★★★★로그켓
           str = edit.getText().toString(); //str변수에 에디트텍스트값 넣음
           PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(),"MS949")),true);
        out.println(str);
        Log.i("로그","보냄");         //★★★★★★★로그켓
        out.flush();
        DataInputStream dis = new DataInputStream(new
          FileInputStream(new File("/mnt/sdcard/1.jpg")));
          DataOutputStream dos = new 
          DataOutputStream(socket.getOutputStream());
                   byte[] buf = new byte[10800]; 
                   while(dis.read(buf)>0)
                   {
                dos.write(buf);
                dos.flush();
                   }
                   dos.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     Log.i("로그","두번째이상 클릭에서 오류");         //★★★★★★★로그켓
           }

 

Java 파일 수신 서버 전체코드

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
 
public class TCPServer implements Runnable{
public static final int serverPort = 30001;
@Override
public void run(){
       try{
       System.out.println("대기중..");
           ServerSocket serverSocket = new ServerSocket(serverPort);
              
           while(true)
           {
              Socket sock = serverSocket.accept();
              System.out.println("수신중....");
              try{
                  BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                 String str = in.readLine();
                 System.out.println("수신중인 파일 이름 : " + str);
                 File f = new File("c:\\down\\", str+".jpg");
                 FileOutputStream output = new FileOutputStream(f);
                 byte[] buf = new byte[10800];                                        
                 while(sock.getInputStream().read(buf)>0)
                 {
                    output.write(buf);
                    output.flush();
                 }
                 in.close();
                 output.close();
                 System.out.println(str+".jpg 수신완료");
             }
             catch(Exception e){
                 System.out.println("서버 에러!!");
                 e.printStackTrace();
             }
             finally{
                 sock.close();
             }
           }
       }
       catch(Exception e){
           e.printStackTrace();
       }
}
public static void main(String[] argv){
Thread doit = new Thread(new TCPServer());
       doit.start();
}
}

 

 

 

 

 

 

실력없는 초보놈이 여러분들께 자문을 구하오니, 부디 뿌리치지 마시옵고

 

넓은 아량으로 살펴주시옵소서 ㅠ.ㅠ

 

profile

 

 

────────────────────── Android.Park

KOPS Co.,Ltd Technical R&D Center / Researcher
───────────────────────────────