데스크탑 서버에서 이미지나, 파일을 보내서 스마트폰에 있는 SD카드에 저장시키려고 합니다.

현재 SD카드에서 데스크탑으로 보내는 소스를 했는데 반대로 하는지는 감이 않잡혀서

어떤 방향쪽으로 가면 좋을까 해서 질문을 드립니다.

=========================================================================

자바서버

package test.server;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

class TCPServer implements Runnable{

public static final int serverPort = 5546;

@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[1024];                                       
                 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();

}

}

========================================================================

소켓자바

package com.test.client;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

 


public class Sock extends Activity {
    private EditText myet;
    private TextView mytv;
    private Button mybtn;
    public String remsg;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        myet = (EditText)findViewById(R.id.edit);
        mytv = (TextView)findViewById(R.id.text);
        mybtn = (Button)findViewById(R.id.sendbtn);
        mybtn.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
               if((mybtn.getText().toString() != null)&&
(!mybtn.getText().toString().equals(""))){
                   TCPClient tp = new TCPClient(myet.getText().toString());
                   tp.run();
           
                   mytv.setText(myet.getText().toString());
                   myet.setText("");
                }
            }
        });
    }
}
====================================================

클라이언트

package com.test.client;

import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

 

public class TCPClient implements Runnable{

private static final String serverIP="192.168.2.2";

private static final int serverPort = 5546;

private String msg;

public TCPClient(String msg){

       super();

       this.msg = msg;

}

@Override

public void run(){

try{

           InetAddress serverAddr = InetAddress.getByName(serverIP);

           Socket sock = new Socket(serverAddr, serverPort);

           try{

            PrintWriter out = new PrintWriter(new BufferedWriter(new

OutputStreamWriter(sock.getOutputStream())), true);

               out.println(msg);

               out.flush();

                          

               DataInputStream dis = new DataInputStream(new

FileInputStream(new File("/mnt/sdcard/"+msg+".png")));

               DataOutputStream dos = new

DataOutputStream(sock.getOutputStream());

               byte[] buf = new byte[1024];

               while(dis.read(buf)>0)

               {

                  dos.write(buf);

                  dos.flush();

               }

               dos.close();

           }

           catch(Exception e){

               e.printStackTrace();

           }

           finally

           {

              sock.close();

           }

}

catch(Exception e){

             e.printStackTrace();

}

}

}

 

여기서 반대로 어떻게 해야할까요