Trabalhando com bytes..[RESOLVIDO]

bom dia galera…

estou tentando enviar uma string via socket… do cliente para o servidor é facil… quero enviar do servidor para o cliente…

dei uma procurada na net… achei umas coisas mais sempre utilizam um tipo de “armazenamento” declarando explicitamente oque querem enviar dentro da classe…
quero que isso fique um pouco mais dinamico… gostaria de enviar oque eu digitar para meu cliente… ja tentei um monte de coisa e não foi… até que encontrei um exemplo que não utiliza uma classe protocolo para enviar essa string… estou tentano modifica-la mais até agora não tive sucesso… segue a classe…

é apenas uma classe teste para ver se consigo fazer o servidor enviar uma String para o Cliente depois tiro e deixo oque realmente vou utilizar…

package teste;

import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.math.BigInteger;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.MessageDigest;
import java.util.Scanner;

public class ServidorCriptografia {
	public static void main(String argv[]) {
		try {
			byte[] buffer = new byte[1024];
			String senhaCriptografada;

			ServerSocket socketRecepcao = new ServerSocket(8585);
			System.out.println("Servidor esperando conexão na porta , 8585");

			while (true) {
				Socket socketConexao = socketRecepcao.accept();
				System.out.println("Conexão estabelecida na porta "
						+ socketConexao.getPort());

				InputStream doCliente = socketConexao.getInputStream();
				OutputStream paraCliente = socketConexao.getOutputStream();
		
				                   // implementei isso
				//==================================================================		
				/**/
				/**/				Scanner teclado = new Scanner(System.in);
				/**/					while (teclado.hasNext()) {
				/**/				teclado.nextByte();
				/**/					}
				/**/				paraCliente.write(teclado); // isso da erro
				/**/
				//==================================================================	
				doCliente.read(buffer);

				MessageDigest md = MessageDigest.getInstance("MD5");
				md.update(buffer);
				BigInteger hash = new BigInteger(1, md.digest());
				senhaCriptografada = hash.toString(16);

				buffer = senhaCriptografada.getBytes();

				paraCliente.write(buffer);

				socketConexao.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

teria como armazenar oque digito no teclado dentro de uma variavel que seja byte ?

grato :-o

vc pode fazer teclado.getBytes() serve ?

Bom dia pessoal, alguem ai teria uma luz ? estou fazendo dessa forma…

CLASSE SERVIDOR


package SocketTes;

import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Servidor {

	public static void main(String[] args) throws IOException {
		byte[] buffer = new byte[2048];
		String mensagem;

		ServerSocket servidor = new ServerSocket(12345);
		System.out.println("Porta 12345 aberta!");

		Socket cliente = servidor.accept();
		System.out.println("Nova conexão com o cliente "
				+ cliente.getInetAddress().getHostAddress());

		// DataInputStream doCliente = new
		// DataInputStream(cliente.getInputStream());
		// DataOutputStream paraCliente= new
		// DataOutputStream(cliente.getOutputStream());
		InputStream doCliente = cliente.getInputStream();
		OutputStream paraCliente = cliente.getOutputStream();

		doCliente.read(buffer);

		Scanner teclado = new Scanner(System.in);
		while (teclado.hasNext()) {
			// teclado.next();

			mensagem = teclado.nextLine();
			buffer = mensagem.getBytes();
			paraCliente.write(buffer);

		}

		// entrada.close();
		servidor.close();
		cliente.close();
		System.exit(0);
	}
}

CLASSE CLIENTE

[code]

package SocketTes;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Client {

public static void main(String[] args) throws UnknownHostException,
		IOException {

	String mensageEnviada;
	byte[] buffer = new byte[2048];

	Socket client = new Socket("127.0.0.1", 12345);
	System.out.println(" O cliente se conectou ao servidor!");

	// DataInputStream doServidor = new
	// DataInputStream(client.getInputStream());
	// DataOutputStream paraServidor = new
	// DataOutputStream(client.getOutputStream());

	InputStream doServidor = client.getInputStream();
	OutputStream paraServidor = client.getOutputStream();

	doServidor.read(buffer);

	Scanner teclado = new Scanner(System.in);
	while (teclado.hasNext()) {
		// teclado.next();

		mensageEnviada = teclado.next();
		buffer = mensageEnviada.getBytes();
		paraServidor.write(buffer);

	}

	// saida.close();
	teclado.close();
	client.close();
	System.exit(0);
}

}[/code]

Vlw :roll:

Consegui fazer Funcionar… VLW pela ajuda aew… Mais tarde posto o codigo com o tratamento… pro enquanto recebo mais aida tenho que converter de bytes pra String VLW !