ola pessoal estou desenvolvendo um server socket esta funcionado perfeitamente.
mas fiz todos os testes com clientes mancando \n no termino da string.
recebi os dados perfeitamente
como estou substituindo um programa em producao existem clientes que nao me enviam \n o que torna o metodo readLine ineficiente no meu caso pois ele necessita de \n para identificar fim de string e me enviar o retorno para minha variavel
como faco para ler por exemplo 10 caracteres???
codigo usado
entradaData = new BufferedReader(new InputStreamReader(socketIn.getInputStream()));
String auxIn = entradaData.readLine();//ele nao retorna enquanto nao tiver \n
System.out.println("dados digitado foi:"+ auxIn);
E qual é o formato dos dados do seu programa em produção, amigo? Você deveria ter averiguado isso antes, para ver qual é o método mais eficiente de ler os dados.
Basicamente você cria um array de 200 caracteres, lê com read, e então transforma esses 200 caracteres em uma String, usando o seguinte construtor de String: String s = new [url=http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#String(char%5B%5D,%20int,%20int)]String/url
entradaData = new BufferedReader(new InputStreamReader(socketIn.getInputStream()));
char[] dadosin = new char[10];
int teste = entradaData.read(dadosin,0,10);
System.out.println("teste de dados : "+teste);
String auxIn =new String(dadosin);
System.out.println("digitado foi:"+ auxIn);
na variavel teste ira retornar quantos caracteres foi enviado pelo usuario
exemplo se ele me mandou uma string com apenas 3 caracteres ele ira gerar uma matriz com apenas trez caracteres do tipo char
depois converto o char em string quando jogo o char no construtor da string