view src/wifibroadcast/WifiMulticast.java @ 1:649b8573372c

cleanup
author one
date Sat, 28 Jul 2012 12:24:04 +0900
parents df9d16620c08
children 2a328333ba70
line wrap: on
line source

package wifibroadcast;

import java.io.IOException;
import java.nio.ByteBuffer;


	import java.net.DatagramPacket;
	import java.net.InetAddress;
import java.net.MulticastSocket;

	public class WifiMulticast implements WifiReceiver,WifiSender {
		private MulticastSocket soc;
		private InetAddress mAddr;
		private int port;
		
		public WifiMulticast(String mCASTADDR, int port) throws IOException {
			this.port = port;
			try {
				mAddr = InetAddress.getByName(mCASTADDR);
				soc = new MulticastSocket(port);
				soc.joinGroup(mAddr);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		@Override
		public void recieve(ByteBuffer testData, long timeout) throws IOException {
			DatagramPacket packet = new DatagramPacket(testData.array(),testData.capacity());
			soc.receive(packet);
			testData.limit(packet.getLength());
			testData.position(0);
		}

		@Override
		public void send(ByteBuffer testData) throws IOException {
			DatagramPacket sendPacket = new DatagramPacket(testData.array(), testData.limit(),mAddr, port);
			soc.send(sendPacket);		
		}

	}