Giriş
Şu satırı dahil ederiz.
Tüm TCP, UDP socketlerini ortak bir veri yapısında toplamak istersek AbstractSelectableChannel veya SelectableChannel sınıflarını kullanabiliriz.
close metodu
Örnek ver
configureBlocking metodu
Şu satırı dahil ederiz.
import java.nio.channels.SocketChannel;
TCP istemcisidir. TCP sunucusu için ServerSocketChannel sınıfı kullanılır. UDP sunucusu için DatagramChannel sınıfı kullanılır.Tüm TCP, UDP socketlerini ortak bir veri yapısında toplamak istersek AbstractSelectableChannel veya SelectableChannel sınıflarını kullanabiliriz.
close metodu
Örnek ver
configureBlocking metodu
Normalde SocketChannel nesnesi blocking davranış gösterir.
Örnek
Şöyle yaparız
SocketChannel socketChannel = SocketChannel.open();
socketChannel.configureBlocking(false);
socketChannel.connect(new InetSocketAddress(host, port));
// block until connection is finished
while (!socketChannel.finishConnect()) {
LockSupport.parkNanos(MILLISECONDS.toNanos(1));
}
Örnek
Şöyle yaparız.
sc.connect(new InetSocketAddress(ip, portfile));
Selector nesnesine abone olup olmadığını döner.
Örnek ver
open metodu
Bağlanmamış socket açar. Daha sonra connect() çağrısı yapmak gerekir.
Örnek
Şöyle yaparız.
SocketChannel sc = SocketChannel.open();
open metodu - InetSocketAddressŞöyle yaparız. SocketChannel soyut bir sınıf olduğu için open metodu çağırmaya gerek var.
SocketChannel sc = SocketChannel.open(new InetSocketAddress("localhost", 4321));
read metoduŞöyle yaparız.
ByteBuffer buffer = ByteBuffer.allocate(1024);
//read the data sent from peer
while (clientf.read(buffer) > 0) {
buffer.flip();
while (buffer.hasRemaining()) { //Process data
...
}
buffer.clear();
}
register metoduSelector nesnesine abone olur.
Örnek ver
write metodu
Şöyle yaparız.
ByteBuffer buffer = ...;
while(buffer.hasRemaining()) {
sc.write(buffer);
}
Hiç yorum yok:
Yorum Gönder