Como identificar a operação - Socket TCP

Pessoal, bom dia.

Estou desenvolvendo um sistema para funcionar no estilo Client -> Server.

O meu server está assim:

public static void main(String[] args) {
		try{
			Worker w = new Worker();
			Cliente cliente = new Cliente();
			ServerSocket ss = new ServerSocket(1099);  
			Socket s = ss.accept();  
			ObjectInputStream ois = new ObjectInputStream(s.getInputStream());  
			cliente = (Cliente) ois.readObject();  
			w.criarCliente(cliente);
			
			System.out.println(cliente);  
			ss.close(); 
			
		}catch(Exception e){
			e.printStackTrace();
		}		

	}

repare que ele só está preparado para criarCliente, e se eu quisesse atualizar? ou seja, o server tem que entender qual é a operação a ser feita.

como faço isso?

Depois de ver um cara ser demitido porque ele usou ObjectInput/OutputStream com sockets e não sabia como resolver um problema sério de vazamento de memória (dica: use ObjectOutputStream.reset de vez em quando para resolver esse problema), eu fico com um pé atrás quanto ao uso desse tipo de recurso :slight_smile:

De qualquer forma, em vez de enviar um objeto Cliente pelo socket, envie objetos Comando pelo socket, contendo dentro desse objeto os parâmetros.

Por exemplo, você poderia ter um objeto Comando que tivesse dois campos: o tipo do comando (Incluir/Excluir/Modificar) e os parâmetros (Cliente, String etc.)

Vivendo e aprendendo :slight_smile:
Para quem, como eu, à primeira vista não entendeu do que se tratava o problema: http://stackoverflow.com/questions/1281549/memory-leak-traps-in-the-java-standard-api

huahuahua, obrigado pela dica amigos.
Mas é apenas um trabalho de faculdade, se não utilizaria RMI. =]

obrigador. abraços