Mercurial > hg > Members > tatsuki > Alice
diff src/main/java/alice/datasegment/MulticastDataSegmentManager.java @ 361:60eee1fb0fd3 multicast
create sender with udp
author | sugi |
---|---|
date | Thu, 15 May 2014 18:29:30 +0900 |
parents | 6cf08aebfc31 |
children | 1494d44392a2 |
line wrap: on
line diff
--- a/src/main/java/alice/datasegment/MulticastDataSegmentManager.java Thu May 15 15:44:22 2014 +0900 +++ b/src/main/java/alice/datasegment/MulticastDataSegmentManager.java Thu May 15 18:29:30 2014 +0900 @@ -2,27 +2,48 @@ import java.io.IOException; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.NetworkInterface; +import java.net.SocketAddress; import java.net.StandardProtocolFamily; import java.net.StandardSocketOptions; import java.nio.channels.DatagramChannel; + import org.apache.log4j.Logger; import alice.codesegment.CodeSegment; -import alice.daemon.Connection; +import alice.daemon.IncomingUdpConnection; +import alice.daemon.MulticastConnection; +import alice.daemon.OutboundTcpConnection; public class MulticastDataSegmentManager extends DataSegmentManager { - Connection connection; + MulticastConnection sender; Logger logger; public MulticastDataSegmentManager(final String MCASTADDR, final int port, final String nis) { logger = Logger.getLogger("multicast"); - connection = new Connection(); - DatagramChannel dc = createDatagramChannel(MCASTADDR, port, nis); + InetAddress mAddr; + try { + mAddr = InetAddress.getByName(MCASTADDR); + + DatagramChannel dcr = createDatagramChannel(mAddr, port, nis); + dcr.bind(new InetSocketAddress(port)); + SocketAddress sAddrr = new InetSocketAddress(mAddr,port); + MulticastConnection receiver = new MulticastConnection(dcr, sAddrr); + new IncomingUdpConnection(receiver).start(); + + DatagramChannel dcs = createDatagramChannel(mAddr, port, nis); + SocketAddress sAddrs = new InetSocketAddress(mAddr,port); + sender = new MulticastConnection(dcs, sAddrs); + new OutboundTcpConnection(sender).start(); // OutboundUdpConnection sender + + } catch (Exception e) { + e.printStackTrace(); + } } - private DatagramChannel createDatagramChannel(String MCASTADDR, int port, String nis) { + private DatagramChannel createDatagramChannel(InetAddress group, int port, String nis) { DatagramChannel dc = null; NetworkInterface ni; try { @@ -39,7 +60,6 @@ dc = DatagramChannel.open(StandardProtocolFamily.INET); dc.setOption(StandardSocketOptions.SO_REUSEADDR, true); dc.setOption(StandardSocketOptions.IP_MULTICAST_IF, ni); - InetAddress group = InetAddress.getByName(MCASTADDR); dc.join(group, ni); } catch (Exception e) { e.printStackTrace();