serializacion
in
Share your Work
•
1 year ago
import java.io.*;
int id ;
DatagramPacket pEnvio;
DatagramPacket pRecibo;
MulticastSocket ms;
byte[] aEnvio;
byte[] aRecibo;
Objeto miObjeto;
InetAddress ip;
int puerto ;
void setup() {
id = -1;
puerto =3000;
if (id == 0) {
miObjeto =new Objeto();
miObjeto.setId(id);
}
try {
ip = InetAddress.getByName("239.1.1.1");
ms = new MulticastSocket(puerto);
ms.setSoTimeout(30);
ms.joinGroup(ip);
}
catch(UnknownHostException e) {
println(e);
}
catch(SocketException e) {
println(e);
}
catch(IOException e) {
println(e);
}
}
void draw() {
background(0);
fill(255);
text(id,width/2,height/2);
if(frameCount%30==0){
enviar();
}
}
void recibir() {
Objeto temp_Objeto;
try {
aRecibo = new byte[4000];
pRecibo =new DatagramPacket(aRecibo, aRecibo.length);
ms.receive(pRecibo);
ByteArrayInputStream bis = new ByteArrayInputStream(aRecibo);
ObjectInputStream ois = new ObjectInputStream(bis);
temp_Objeto = (Objeto) ois.readObject();
if (temp_Objeto != null) {
if (temp_Objeto.getId() == id) {
miObjeto = temp_Objeto ;
}
}
}
catch (ClassNotFoundException e) {
// println(e);
}
catch (IOException e) {
// println(e);
}
}
void enviar() {
try {
if (miObjeto != null) {
//traductor: pasa del objeto al arreglo de bytes
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//flujo donde debo escribir el objeto
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(miObjeto);
aEnvio = bos.toByteArray();
pEnvio = new DatagramPacket(aEnvio, aEnvio.length, ip, puerto);
ms.send(pEnvio);
println("enviando...");
miObjeto=null;
}
}
catch (IOException e) {
// println(e);
}
}
//////////// CLASE .JAVA//////////////////////
import java.io.*;
public class Objeto implements Serializable{
int id;
int contador;
public Objeto(){
id = -1;
contador = 0;
}
public int getId(){
return this.id;
}
public void setId(int id){
this.id = id;
}
}