view src/main/java/alice/daemon/MulticastConnection.java @ 443:2f2623484b77 dispose

change protocol
author sugi
date Sat, 18 Oct 2014 19:30:13 +0900
parents aefbe41fcf12
children bd245df5cba3
line wrap: on
line source

package alice.daemon;

import java.io.IOException;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.DatagramChannel;

import alice.datasegment.Command;

public class MulticastConnection extends Connection {
    private DatagramChannel dc;
    private SocketAddress sAddr;

    public MulticastConnection(DatagramChannel d, SocketAddress s) {
        dc = d;
        sAddr = s;
    }

    // may need to add infomation who send on ds.
    @Override
    public synchronized void write(Command cmd){
        ByteBuffer buffer = cmd.convert();
        try {
            while (buffer.hasRemaining()){
                dc.send(buffer, sAddr);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @Override
    public void close(){
        try {
            dc.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void receive(ByteBuffer receiveData){
        try {
            dc.receive(receiveData);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}