package com.example.sendfiletest3; 
  
import android.annotation.SuppressLint;
import android.util.Log;

import java.io.BufferedReader;
import java.io.BufferedWriter; 
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; 
import java.io.PrintWriter; 
import java.net.InetAddress; 
import java.net.Socket; 
  
@SuppressLint("SdCardPath")
public class TCPClient implements Runnable{ 
private static final String serverIP="xx.xxx.xxx.xx"; 
private static final int serverPort = 80; 
private String msg; 
public TCPClient(String msg){ 
           	super(); 
           	this.msg = msg; 
} 
@SuppressWarnings("resource")
@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+".txt"))); 
           	        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();           	  
           	    } 
           	    // *********** 새로 추가한 코드입니다 *****************
           	    try {  
                    BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));  
                    String str = in.readLine();  
                    Log.d("TCP" ,"C: Received: '" + str + "'");  
                       
                    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())), true);  
                    Log.d("TCP" ,"Server Received " + str);  
                } catch (Exception e) {  
                    Log.d("TCP" ,"S: Error");  
                    e.printStackTrace();  
                }
           	    // *************************************************
           	    finally { 
           	        	sock.close(); 
           	    } 
           	 } catch(Exception e) { 
             e.printStackTrace(); 
			} 
		} 
}