안드로이드 소켓통신으로 이미지 전송하는 중에 이미지가 제대로 전송도 안되는거 같습니다. 한번 봐주세요 ㅠ
client부분
public class TcpSend implements Runnable {
private String return_msg;
private static final String serverIP = "192.168.0.31"; // ex: 203.252.22.54
private static final int serverPort = 6666; // ex: 5565
private String msg;
private String ty;
public TcpSend(String _msg){
this.msg = _msg;
this.ty = Tokenizer(_msg);
}
private String Tokenizer(String st){
String type = null;
StringTokenizer str = new StringTokenizer(st,"@");
type = str.nextToken();
return type;
}
public void run() {
//TODO Auto-generated method stub
try {
InetAddress serverAddr = InetAddress.getByName(serverIP);
Socket socket = new Socket(serverAddr, serverPort);
try {
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(msg);
if(ty=="Report"){
DataInputStream dis = new DataInputStream(new FileInputStream(new File("\\sdcard\\cameratest.jpg")));
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
byte[] buf = new byte[1024];
while(dis.read(buf)>0){
dos.write(buf);
dos.flush();
}
dos.close();
}
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
return_msg = in.readLine();
} catch(Exception e) {
Log.e("TCP", "C: Error1", e);
} finally {
socket.close();
}
} catch (Exception e) {
Log.e("TCP", "C: Error2", e);
}
}
public String message(){
return return_msg;
}
}
server부분
public class AndServer extends Applet implements Runnable {
public static final int ServerPort = 6666;
@Override public void run() { // TODO Auto-generated method stub try{ System.out.println("Server: Connecting..."); ServerSocket serverSocket = new ServerSocket(ServerPort);
while (true) { Socket client = serverSocket.accept(); System.out.println("Server: Receiving...");
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String str = in.readLine();
System.out.println("S: Received: '" + str + "'");
String re = null; String type = null;
type = Tokenizer(str);
if(type.equals("Join")){ re = Join(str); } if(type.equals("Login")){ re = login(str); //System.out.println(re+"?"); } if(type.equals("Report")){ File f = new File("C:\\cameratest.jpg"); FileOutputStream output = new FileOutputStream(f); byte[] buf = new byte[1024]; while(client.getInputStream().read(buf)>0){ output.write(buf); output.flush(); } int fileLength = (int)f.length(); System.out.println(fileLength); FileInputStream fin = new FileInputStream(f); re = report(str,fin,fileLength); output.close(); }
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true); out.println(re);
} 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: Error"); e.printStackTrace(); } }
private String Tokenizer(String st){ String type = null;
StringTokenizer str = new StringTokenizer(st,"@"); type = str.nextToken(); return type; }
private String Join(String st){
String name = ""; String id = ""; String tel = ""; String pw = "";
StringTokenizer str = new StringTokenizer(st,"@"); while(str.hasMoreTokens()){ str.nextToken(); name = str.nextToken(); id = str.nextToken(); pw = str.nextToken(); tel = str.nextToken(); }
ServerDB join = new ServerDB(); join.insert(name, id, pw, tel);
return "OK";
} private String login(String st){ //string st = "SEARCH@이름"
String id = ""; String pw = ""; StringTokenizer str = new StringTokenizer(st,"@"); while(str.hasMoreTokens()){ str.nextToken(); id = str.nextToken(); //Tokenizer -> String name = 이름값 삽입 pw = str.nextToken(); }
ServerDB log = new ServerDB(); if(pw.equals(log.check(id))){ return "OK"; } else return "NO";
} private String report(String st,InputStream fi,int fileLength){
String content =""; String id=""; StringTokenizer str = new StringTokenizer(st,"@"); while(str.hasMoreTokens()){ str.nextToken(); content = str.nextToken(); id = str.nextToken(); } ServerDB rep = new ServerDB(); rep.update(content,fi,fileLength,id);
return "OK";
} //---------------------------------------------------------
public static void main(String[] args){ // TODO Auto-generated method stub Thread desktopServerThread = new Thread(new AndServer()); desktopServerThread.start(); }
}부탁드립니다. ㅜ