안드로이드 소켓통신으로 이미지 전송하는 중에 이미지가 제대로 전송도 안되는거 같습니다. 한번 봐주세요 ㅠ
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();
}}부탁드립니다. ㅜ



