Skip to content

Instantly share code, notes, and snippets.

@joffilyfe
Last active June 13, 2017 12:03
Show Gist options
  • Save joffilyfe/4b6cfdd3599acad99f7cd58557cb5a8f to your computer and use it in GitHub Desktop.
Save joffilyfe/4b6cfdd3599acad99f7cd58557cb5a8f to your computer and use it in GitHub Desktop.
// Dono precisa implementar o serializable
public class Dono implements Serializable {
private String nome;
public Dono(String nome) {
this.nome = nome;
}
public String getNome() {
return this.nome;
}
}
public class Casa implements Serializable {
private Dono dono = new Dono("Joffily");
public Dono getDono() {
return this.dono;
}
public void setDono(Dono dono) {
this.dono = dono;
}
}
public class Servidor {
public static void main(String[] args) {
// Criando o servidor e aceitando uma conexão
ServerSocket server = new ServerSocket("7171", 5);
Socker socket = server.accept();
// Recebendo um objeto do cliente
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
/* Recebi um objeto do tipo Casa vindo pelo canal do socket.
Este objeto precisa implementar a interface Serializable
Se este objeto possuir alguma dependência dentro, como outros objetos,
Estes outros objetos também precisam implementar a interface Serializable
*/
Casa novaCasa = (Casa)in.readObject();
// Observe que a casa tem um método getDono, se vier um Objeto, este objeto precisa ser Serializable também!
System.out.println(casa.getDono().getNome());
/*
* Nós podemos alterar os atributos do objeto normalmente, uma vez que ele foi recebido ele agora pode ser alterado.
* É importante frizar que quando alterarmos em um dos lados (Servidor ou cliente) o outro lado não fica sabendo destas alterações
* porque nós não temos um objeto distribuído, temos apenas um envio de objeto.
*/
novaCasa.setDono(new Dono("Marianna"));
socket.close();
server.close();
}
}
public class Cliente {
public static void main(String[] args) {
Socket socket = new Socket("IP", 7171);
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
// Instanciando uma casa nova.
Casa nova = new Casa();
// Escrevendo objeto no canal
out.writeObject(nova);
socket.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment