Este é meu código que estou usando para receber os bytes, e já convertes os bytes para bufferedimage e enviar para um diretório:
ServerUtils s = new ServerUtils();
while(true){
try{
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(700<img src="http://javafree.uol.com.br/forum/images/smiles/icon_cool.gif">;
Socket socket = null;
InputStream is = null;
socket = serverSocket.accept();
is = socket.getInputStream();
DataInputStream ds = new DataInputStream(socket.getInputStream());
byte[] bytes = new byte[ds.readInt()]; //Recebo o bytes.lenght(); do cliente
ds.read(bytes); //Recebo os bytes todos
s.sendMessage(ServerUtils.INFO, "Recebido imagem do ip: "+socket.getInetAddress());
s.byteToImage(bytes);
is.close();
socket.close();
serverSocket.close();
}catch(IOException e){
e.printStackTrace();
}
}
Testei o método para conversão com um conjunto de bytes de uma array local e ele está funcionando, mas quando eu tento usar ele com os bytes que eu recebo por sockets, da o seguinte erro:
Error reading PNG image data
Será falta byte ( Conferi o bytes[1] e o bytes.lenght() e está similar ao original )?
Se for, onde posso ter errado no meu código do servidor…?