O galera, estou tentando conectar no servidor usando thread, porem toda vez que eu chamo a função para enviar um determinado dado para o servidor ele conecta novamente. se eu tirar a linha NEW CONEXAO da erro, ou seja, nao posso ter a linha verde. alguem pode me ajudar.
OBS: o procedimento leitura vai ser lido e passado como paramentro atraves de outra classe.
import <a href="http://java.io">java.io</a>.<em>;
import <a href="http://java.net">java.net</a>.</em>;
public class Cliente extends Thread {
public Cliente(){
}
// Flag que indica quando se deve terminar a execução.
private static boolean done = false;
public static void main(String args[]) {
try {
Socket conexao = new Socket("127.0.0.1", 2222);
PrintStream saida = new
PrintStream(conexao.getOutputStream());
// enviar antes de tudo o nome do usuário
BufferedReader teclado =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Entre com o seu nome: ");
String meuNome = teclado.readLine();
saida.println(meuNome);
// Uma vez que tudo está pronto, antes de iniciar o loop
// principal, executar a thread de recepção de mensagens.
Thread t = new Cliente(conexao);
t.start();
// loop principal: obtendo uma linha digitada no teclado e
// enviando-a para o servidor.
}
catch (IOException e) {
// Caso ocorra alguma excessão de E/S, mostre qual foi.
System.out.println("IOException: " + e);
}
new Menu().show();
}
// parte que controla a recepção de mensagens deste cliente
private Socket conexao;
// construtor que recebe o socket deste cliente
public Cliente(Socket s) {
conexao = s;
}
[color=blue]public void leitura(String l){[/color]
try {
[color=green]Socket conexao = new Socket(“127.0.0.1”, 2222);[/color]
PrintStream saida = new
PrintStream(conexao.getOutputStream());
String linha;
linha = l;
}
catch (IOException e) {
// caso ocorra alguma exceção de E/S, mostre qual foi.
System.out.println(“IOException: " + e);
}
}
// execução da thread
public void run() {
try {
BufferedReader entrada = new BufferedReader
(new InputStreamReader(conexao.getInputStream()));
String linha;
while (true) {
// pega o que o servidor enviou
linha = entrada.readLine();
// verifica se é uma linha válida. Pode ser que a conexão
// foi interrompida. Neste caso, a linha é null. Se isso
// ocorrer, termina-se a execução saindo com break
if (linha == null) {
System.out.println(“Conexão encerrada!”);
break;
}
// caso a linha não seja nula, deve-se imprimi-la
System.out.println();
System.out.println(linha);
System.out.print(”…> ");
}
}
catch (IOException e) {
// caso ocorra alguma exceção de E/S, mostre qual foi.
System.out.println("IOException: " + e);
}
// sinaliza para o main que a conexão encerrou.
done = true;
}
}