serializacion
/****** EJECUTABLE *************/
import java.io.*;
int id ;
DatagramPacket pEnvio;
DatagramPacket pRecibo;
MulticastSocket ms;
byte[] aEnvio;
byte[] aRecibo;
ContadorClicks miContador;
InetAddress ip;
int puerto ;
void setup(){
id = 0;
puerto =3000;
if(id == 0){
miContador =new ContadorClicks();
miContador.setIdTurno(id);
}
try{
ip = InetAddress.getByName("239.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);
//me pregunto si han pasado 10 segundos
if (( frameCount % 300 )==0){
println("enviando...");
//enviar
enviar();
}
//recibir
recibir();
if (miContador != null)
//println(miContador.
text(miContador.getContador(), 10, 10);
}
void recibir(){
ContadorClicks temp_Contador;
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_Contador = (ContadorClicks) ois.readObject();
if (temp_Contador != null){
if (temp_Contador.getIdTurno() == id){
miContador = temp_Contador ;
}
}
}
catch (ClassNotFoundException e){
// println(e);
}
catch (IOException e){
// println(e);
}
}
void enviar(){
try{
if (miContador != null){
miContador.setIdTurno(id+1);
//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(miContador);
aEnvio = bos.toByteArray();
pEnvio = new DatagramPacket(aEnvio, aEnvio.length, ip, puerto);
ms.send(pEnvio);
miContador=null;
}
}
catch (IOException e){
// println(e);
}
}
void mouseClicked(){
if (miContador != null){
if(miContador.getIdTurno() == id){
miContador.setContador();
}
else{
println("No es su turno");
}
}
else{
println("No es su turno");
}
}
/*********************** CLASE, GUARDAR COMO .java ***************/
import java.io.*;
public class ContadorClicks implements Serializable{
int idTurno;
int contador;
public ContadorClicks(){
idTurno = -1;
contador = 0;
}
public int getIdTurno(){
return this.idTurno;
}
public void setIdTurno(int idTurno){
this.idTurno = idTurno;
}
public int getContador(){
return this.contador;
}
public void setContador(){
this.contador ++;
}
}