Last active
June 13, 2017 12:03
-
-
Save joffilyfe/4b6cfdd3599acad99f7cd58557cb5a8f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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