Dúvida sobre comunicação Cliente Server via socket

Boa tarde pessoal,

Estou desenvolvendo uma aplicação com RFID para o meu TCC e estou utilizando o Rifidi Emulator, onde eu consigo identificar tags e etiquetas. Quando eu faço a comunicação via telnet, ele solicita que eu digito um usuário, uma senha e um comando.

Tentei fazer uma classe em java que fizesse essa comunicação, que segue abaixo.

	Socket sc = null;
		BufferedReader in;
		DataOutputStream saida = null;
		
		try{
		sc = new Socket("localhost",20000);
			in = new BufferedReader(new InputStreamReader(sc.getInputStream()));
			saida = new DataOutputStream(sc.getOutputStream());
			System.out.println("Recebeu: ");
			
			saida.writeUTF("alien");

			String output = "";
			String temp = "";
			
			while((temp = in.readLine()) != null){
				output += temp;
			}
			System.out.println(output);
		}catch (Exception e) {
			System.out.println("Error: " + e.getMessage());
		}
		

Há um momento no meu while que ele trava, que, creio eu é quando é solicitado que eu insira o usuário. O problema é que eu não sei como fazer para quando o meu emulador solicitar uma resposta, eu envie…

Alguém poderia me ajudar?

Obrigada

cara,

explica melhor essa situação do seu RFID, o que seria o servidor

t+

Oi alissonvla,

Em primeiro lugar, obrigada por me responder…

Creio que minha explicação tenha ficado um pouco confusa, mas assim, eu creio que nesse caso o meu servidor seria o Rifidi Emulator…

O que acontece é assim, eu dei um telnet local apontando pra porta do emulador, ele me retornou algumas informações,porem antes disso, quando dou um telnet ele solicita usuario e senha do proprio emulador…
Tentei criar algo semelhante ao telnet, mas na hora que o servidor espera uma resposta, é ai que não sei oq fazer

Deu pra entender??? rs

alissonvla,

Se via telnet você é obrigado a enviar usuário, senha e comando via socket não será diferente, e no seu exemplo não vi vc passando usuário, senha e comando.

PS.: lembre-se de dar um flush;

:wink:

Então ops.rio,

Essa é justamente a minha dúvida…
Eu não sei como eu faço para passar o usuário, senha e comando entendeu???

Estou dando uma estudada em Socket, que é o que eu acho que tenho que fazer, mas ainda estou um pouco perdida…

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socketClient.getOutputStream()));

out.write(msg);
out.flush();

se precisar enviar um enter no final tente concatenar um “\n”

ou utilize a Classe PrintWriter para recuperar o OutPutStream essa classe possui um método println q já envia um newLine no final, porém esta não devolve exception em caso de falha na comunicação.

Beleza…

Vou testar aqui e posta se o resultado foi favorável ou não :wink:

cara,

o socket é o seguinte, vc vai ter uma aplicação que fica escutando numa porta, ai a aplicação cliente conecta nesse servidor e nessa porta, e envia dados para esse servidor. No seu caso, se vc precisa de passar usuario, senha e comando, vc vai ter que ver outra coisa para resolver seu problema.

t+