Olá pessoal,
estou tentando enviar uma string do cliente para o servidor utilizando DataOutputStream.
writer= new DataOutputStream(socket.getOutputStream());
…
byte[] buffer = new byte[10];
…
StringBuffer teste = new StringBuffer("\\Tensao");
teste.append(";");
teste.append("\\Corrente");
…
writer.write(buffer);
Até que funciona, mas cada caracter está sendo enviado em um byte e no servido tenho que “desconverter” usando a tabela ASCII.
Gostaria de fazer o envio dessa string de uma maneira mais simples (leia-se inteligente).
Alguém pode me ajudar?
Obrigado
A primeira implementação que fiz foi usando ObjectInput/OutputStream, funciona maravilha.
O problema é que além de clientes Java também tenho clientes C, portanto tenho que fazer a implementação de modo que o cliente somente envie uma string e o servidor não fique dependente do recebimento de objetos.
Entendeu o problema?
Agradeço muito a tentativa.
[quote=Juino]
Gostaria de fazer o envio dessa string de uma maneira mais simples (leia-se inteligente).
Alguém pode me ajudar?
Obrigado[/quote]
Se vc quer fazer isso de uma maneira mais simples, então recomendo vc utilizar as classes PrintStream e Scanner:
//lado cliente
PrintStream pw=new PrintStream(socket.getOutputStream());
pw.println("\\Tensao\\Corrente");
pw.flush(); //o método flush é utilizado para limpar o buffer, garantindo que todas a mensagens foram enviadas
pw.close();
//lado servidor
Scanner scanner=new Scanner(socket.getInputStream());
while(scanner.hasNextLine()){ //enquanto existirem linhas de dados no buffer ele continua no while
System.out.println(scanner.nextLine()); //imprime no console a linha enviada e avança o buffer para a próxima linha
}
scanner.close();