Giriş
Şu satırı dahil ederiz.
Şu satırı dahil ederiz.
import java.nio.channels.DatagramChannel;
TCP istemcisi için SocketChannel sınıfı kullanılır. TCP sunucusu için ServerSocketChannel sınıfı kullanılır.bind metodu
Şöyle yaparız
DatagramChannel datagramChannel = DatagramChannel.open(StandardProtocolFamily.INET
InetAddress address = InetAddress.getByName("127.0.0.1");
datagramChannel.bind(new InetSocketAddress(address, 34521));
join metodu - MulticasGroup + NetworkInterfaceİmzası şöyle
MembershipKey join(InetAddress group, NetworkInterface interf)
Örnek
Şöyle yaparız. Burada bind() çağrısı da yapılıyor. Böyle port belirtiliyor. Ayrıca loopback interface üzerindeki 239.255.0.1 adresine multicast join yapılıyor. Eğer istenirse interface ismi (eth0 gibi) direkt kullanılabilir.
open metodu
Şöyle yaparız.
Şöyle yaparız.
Alttaki socket nesnesine erişiriz.
InetAddress address = InetAddress.getByName("127.0.0.1");
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(address);
InetAddress group = InetAddress.getByName("239.255.0.1")
DatagramChannel channel = DatagramChannel.open(StandardProtocolFamily.INET)
.setOption(StandardSocketOptions.SO_REUSEADDR, true)
.bind(new InetSocketAddress(5000))
.setOption(StandardSocketOptions.IP_MULTICAST_IF, networkInterface);
MembershipKey key = channel.join(group, networkInterface
);
join metodu - Source-specific multicast (SSM)
İmzası şöyle
İmzası şöyle
MembershipKey join(InetAddress group, NetworkInterface interf, InetAddress source)
Açıklaması şöyle
Source-specific multicast (SSM) is an extension of multicast communication that allows receivers to specify not only the multicast group address they want to receive from but also the source of the multicast traffic. This can be useful for scenarios where you want to ensure that you receive multicast traffic only from specific sources.
Şöyle yaparız.
DatagramChannel channel = DatagramChannel.open();
receive metoduŞöyle yaparız.
ByteBuffer byteBuffer = ByteBuffer.allocate(1500);
byteBuffer.clear();
InetSocketAddress sa = (InetSocketAddress) channel.receive(byteBuffer);
System.out.println("received from " + sa.getHostString());
socket metodu
Alttaki socket nesnesine erişiriz.
channel.socket().bind(new InetSocketAddress(port));
Hiç yorum yok:
Yorum Gönder