Mercurial > hg > Members > kono > WifiBroadcast
diff src/main/java/jp/ac/uryukyu/ie/kono/wifibroadcast/WifiMulticast.java @ 27:12633f67f3cf default tip
jar
author | oshiro |
---|---|
date | Wed, 28 Nov 2018 18:28:39 +0900 |
parents | src/main/jp/ac/uryukyu/ie/kono/wifibroadcast/WifiMulticast.java@42ecbd9364fa |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/uryukyu/ie/kono/wifibroadcast/WifiMulticast.java Wed Nov 28 18:28:39 2018 +0900 @@ -0,0 +1,46 @@ +package jp.ac.uryukyu.ie.kono.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 { + private MulticastSocket soc; + private InetAddress mAddr; + private int port; + + public WifiMulticast(int id, String mCASTADDR, int port, SocketType sender) 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); + testData.position(testData.limit()); + } + + @Override + public void selectMode(boolean mode) { + + } + +} +