2012-12-08 6 views
1

클라이언트에서 수신 한 이미지를 표시하고 해당 이미지를 서버에 표시하려고합니다.하지만 나중에 이미지 부분을 유지하고 처음에는 inputstream을 수신하고 그것을 인쇄하십시오.Java : 클라이언트가 수신 한 문자열을 인쇄 할 수 없습니다.

문제는 클라이언트의 요청을 수락하지만 decodedstring 즉 decodedString = Base64.decodeBase64(base64Code);

가 여기에 어떤 도움이 높게 평가 될 것이다

import java.net.*; 
import java.io.*; 

import org.apache.commons.codec.binary.Base64; 
import java.awt.*; 

import javax.swing.*; 


public class server { 
private static DataInputStream dataInputStream; 


private static DataOutputStream dataOutputStream; 

public static void main(String[] args) throws IOException { 
// create socket 
ServerSocket servsock = new ServerSocket(14789); 

Socket sock = servsock.accept(); 
dataInputStream = new DataInputStream(sock.getInputStream()); 
dataOutputStream = new DataOutputStream(sock.getOutputStream()); 
System.out.println("Accepted connection : " + sock); 


String base64Code = dataInputStream.readUTF(); 

byte[] decodedString = null; 

decodedString = Base64.decodeBase64(base64Code); 
System.out.println("Image Successfully Manipulated!" + decodedString); 

if (dataOutputStream != null) { 
try { 
dataOutputStream.close(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 

if (dataInputStream != null) { 
try { 
dataInputStream.close(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 



sock.close(); 
} 


public static String encodeImage(byte[] imageByteArray) { 
return Base64.encodeBase64String(imageByteArray); 
} 
} 

서버에 대한 코드의 인쇄 doesnot이다.

답변

0

당신은 단지 바이트의 배열을 인쇄하지 못할,

System.out.println("Image Successfully Manipulated!" + decodedString); 

인쇄 뭔가 당신을 위해, 당신은 문자열을 16 진수 바이트 배열을 변환해야합니다 문자열로 바이트 배열을 인쇄하려면

Image Successfully Manipulated![[email protected] 

같은 코드 예 :

public static String byteArrayToHexString(byte[] b) 
{ 
    StringBuffer sb = new StringBuffer(b.length * 2); 
    for (int i = 0; i < b.length; i++) 
    { 
     int v = b[i] & 0xff; 
     if (v < 16) 
     { 
      sb.append('0'); 
     } 
     sb.append(Integer.toHexString(v)); 
    } 
    return sb.toString().toUpperCase(); 
} 
관련 문제