안드로이드로 서버로 이미지 파일 전송 앱을 만들려고하는데 구현은 다한거같은데 실행에서 작동을 하지 않네요;;
원인을 알려주세요!!오류같은건 안나는데 도통 모르겠네요;;;
client=================================================================
package exam.android;
import java.io.*;
import java.net.*;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class android extends Activity {
/** Called when the activity is first created. */
private String return_msg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et = (EditText)findViewById(R.id.EditText01);
final EditText et1 = (EditText)findViewById(R.id.EditText02);
Button btn = (Button)findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
if(et.getText().toString().equals("") || !et1.getText().toString().equals("")){
TCPclient tp = new TCPclient(et.getText().toString(),et1.getText().toString());
tp.run();
}
}
});
}
private class TCPclient implements Runnable {
private String serverIP ;
private static final int serverPort = 5555;
private String msg;
//private String return_msg;
public TCPclient(String _msg,String _ip){
this.msg = _msg;
this.serverIP = _ip;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
InetAddress serverAddr = InetAddress.getByName(serverIP);
Log.d("TCP", "C: Connecting...");
Socket socket = new Socket(serverAddr, serverPort);
try {
Log.d("TCP", "C: Sending: '" + msg + "'");
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
out.flush();
DataInputStream dis=null;
dis = new DataInputStream(new FileInputStream(new File("/sdcard/DCIM/Camera/"+msg)));
DataOutputStream dos=null;
dos =new DataOutputStream(socket.getOutputStream());
int b=0;
while((b=dis.read())!=-1){
dos.writeByte(b);dos.flush();
}
Log.d("TCP", "C: Sent.");
Log.d("TCP", "C: Done.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
return_msg = in.readLine();
Toast t = Toast.makeText(getApplicationContext(),return_msg, Toast.LENGTH_LONG);
t.show();
Log.d("TCP", "C: Server send to me this message -->" + return_msg);
} catch(Exception e) {
Log.e("TCP", "C: Error1", e);
} finally {
socket.close();
}
} catch (Exception e) {
Log.e("TCP", "C: Error2", e);
}
}
}
}
server=============================================================================
import java.io.*;
import java.net.*;
import java.net.Socket;
public class androidserver implements Runnable{
public static final int ServerPort = 5555; // ex: 5555
public static void main(String[] args) {
Thread desktopServerThread = new Thread(new androidserver());
desktopServerThread.start();
}
@Override
public void run() {
try{
System.out.println("S: Connecting...");
ServerSocket serverSocket = new ServerSocket(ServerPort);
while (true) {
System.out.println("S: Receiving...");
Socket client = serverSocket.accept();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str = in.readLine();
File f=new File("c:\\",str);
FileOutputStream output=new FileOutputStream(f);
int i=0;
while((i=client.getInputStream().read())!=-1){
output.write((char)i);
}
System.out.println("S: Received: '" + str + "'");
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);
out.println("Server Received "+ str);
} catch(Exception e) {
System.out.println("S: Error");
e.printStackTrace();
} finally {
client.close();
System.out.println("S: Done.");
}
}
} catch (Exception e) {
System.out.println("S: Error1");
e.printStackTrace();
}
}
}
접속이 되는지 부터 차근 차근 로그를 찍거나 Breakpoint를 찍어서 찾는 수 밖에 없습니다.