package bingo.game; import java.net.*; import bingo.shared.*; class SocketGate implements Constants { private InetAddress ballListeningGroup; private InetAddress playerListeningGroup; private InetAddress gameListeningGroup; private MulticastSocket socket = null; SocketGate () throws java.io.IOException { socket = new MulticastSocket(Constants.portNumber); ballListeningGroup = InetAddress.getByName(Constants.BallListeningGroup); playerListeningGroup = InetAddress.getByName(Constants.PlayerListeningGroup); gameListeningGroup = InetAddress.getByName(Constants.GameListeningGroup); } void sendBall(BingoBall b) { sendBytes(b.getBytes(), ballListeningGroup); } void sendPlayerStatusMessage(PlayerRecord p) { sendBytes(p.getBytes(), playerListeningGroup); } void sendGameStatusMessage(String msg) { sendBytes(msg.getBytes(), gameListeningGroup); } private void sendBytes(byte[] data, InetAddress group) { DatagramPacket packet = new DatagramPacket(data, data.length, group, Constants.portNumber); try { socket.send(packet); } catch (java.io.IOException e) { // PENDING: what should go in here? } } }