Não consigo manipular variavel STATIC localHost através de getters & setters

0 respostas
H

Tenho uma variável estatica:

Code:

private static String lHost

pois esse valor é o mesmo por todos os objetos instanciados...

tenho um método getter e um setter para essa variável (tendo em vista que ela é private)... os métodos devem também ser STATIC?? (já tentei os dois, mas só pra saber mesmo)...

Bom, eu executo um método essa mesma classe: GerenciadorServer:

public void gerencia() - onde uma das primeiras linhas, ele chama o setLHost passando como argumento o String.valueOf(blablagetLocalHost) (método que me retorna o nome e ip local).

O fato é que a variável estática continua nula, nao estou conseguindo mudá-la, outra coisa curiosa, é que no DEBUG do eclipse a variável nao aparece na listinha (this, etc) onde aparecem as variaveis e seus valores antes e/ou depois de setados.

Alguém sabe como modifico o valor da mesma?

Obrigado!

package gerenciador;

import java.io.*;
import java.net.*;

public class GerenciadorServer {
	
	private String recebido = null;
	private String envia = "ok\n";
	private static String localHost;
	private int index;
	
	public String getRecebido() {
		return recebido;
	}
	
	public void setRecebido(String rec) {
		recebido = rec;
	}
	
	public String getEnvia() {
		return envia;
	}
	
	// trata e seta localHost
	public void setLocalHost( String localH ){
		index = localH.indexOf("/");
		localHost = localH.substring(index+1);
	}
	
	public String getLocalHost() {
		return localHost;
	}
	
	public void gerencia() throws Exception {
		
		//cria socket de comunicação com os clientes
		ServerSocket welcomeSocket = new ServerSocket(6968);
		
		// seta o LocalHost no server
		setLocalHost(String.valueOf(InetAddress.getLocalHost()));
		
		
		//espera a mensagem de algum cliente e trata
		while(true) {
			Socket connectionSocket = welcomeSocket.accept();
			
			BufferedReader recebidoDoCliente = 
				new BufferedReader( new InputStreamReader(connectionSocket.getInputStream()));
			
			//DataOutputStream enviaProCliente =
			//new DataOutputStream(connectionSocket.getOutputStream());
			
			recebido = recebidoDoCliente.readLine();
			
			if (recebido.length() > 0) {
				if ( recebido.substring(0,9).equals("BSMIPHOME")) {
					String ipDest = recebido.substring(9); // recebe o ipHome do outro e seta como meu ipDest
					GerenciadorClient client = new GerenciadorClient();
					client.setIpDest(ipDest);
					System.out.println(recebido); //debug
				}
				else {
					System.out.println(recebido);
				}
				
				String confirma = "MensagemRecebida!";
				//client.gerencia(1, confirma);
			}
			
			welcomeSocket.close();
			//enviaProCliente.writeBytes(envia);
			
		}
	}

}
Criado 6 de fevereiro de 2007
Respostas 0
Participantes 1