package client;
//import common.messages.*;
//import java.awt.event.*;
//import java.io.*;
//import java.nio.charset.Charset;
//import java.util.*;
//import javax.swing.*;
import common.*;
import java.net.*;
import java.nio.*;
import java.nio.channels.*;
import java.util.logging.Logger;
/**
* Client connection to the server and other clients.
*/
public class MulticastReader extends Thread implements Constants {
public static Logger logger = Logger.getLogger(CLIENT_LOGGER_NAME);
private MulticastSocket socket;
private Pipe.SinkChannel pipe;
private InetAddress myself;
public MulticastReader(MulticastSocket socket, Pipe.SinkChannel pipe) {
this.socket = socket;
this.pipe = pipe;
try
{
myself = InetAddress.getByName("localhost");
System.out.printf("My name is %s\n", myself.toString());
}
catch (UnknownHostException er) { }
}
/**
*
*/
public void run() {
byte[] buf = new byte[1000];
DatagramPacket packet = new DatagramPacket(buf,buf.length);
while(true) {
try {
socket.receive(packet);
//if (packet.getAddress().equals(myself)) continue;
//System.out.printf("Recieved packet of length %d from %s\n", packet.getLength(), packet.getAddress().toString());
pipe.write(ByteBuffer.wrap(packet.getData()));
}
catch (Exception ex) {
}
Thread.yield();
}
}
}