OutputStream Limite

4 respostas
luciano2

Ola!

Alguem sabe se o outputStream tem limite de dados para enviar no write?

Eu estou tentando enviar dados via outputStream mais os dados não chegam completos. Alguem pode me ajudar?!

4 Respostas

ViniGodoy

Não tem limite. Como você está fazendo a leitura? E você está enviando via socket?

luciano2

Estou enviando via socket lendo com o readline,

Depois de algumas linhas ele da esse erro com.sun.jdi.VMDisconnectedException: Got IOException from Virtual Machine occurred invoking method.

ele falha no debug e em execução ele não conecta.

luciano2

Dei uma mudada no código para ver se conseguia resolver.

eu tinha 3 copias do mesmo arquivo, ele enviava os dois primeiros e o terceiro ele só enviava até a ultima parte.

remove duas copias, a copia q ficou só é enviada até o local que o terceiro arquivo era enviado.

Será que é problema de sincronismo?

Meu cliente assim q termina de enviar pede um inputStream com a resposta.

Cliente
int tamanho = 1024; // buffer de 4KB   
byte[] buffer = new byte[tamanho];   
int lidos = -1;   
while ((lidos = stream.read(buffer, 0, tamanho)) != -1) {   
	out.write(buffer, 0, lidos);   
}   

InputStream inStream = s.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
while(reader.ready()){
   return Boolean.parseBoolean(reader.readLine());
}

Servidor

while(reader.ready()){
         aux = reader.readLine();
         System.out.println(aux);
         message.append(aux); 
}
luciano2

UOPs!

Foi erro meu mesmo, como li com o readline do bufferedReader ele não estava lendo a ultima linha porque ela não tinha o \n.

envie o \n no final do arquivo e ele consegiu concluir a leitura.

Criado 28 de agosto de 2010
Ultima resposta 28 de ago. de 2010
Respostas 4
Participantes 2