O’zbekiston respublikasi raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti telekommunikatsiya fakulteti 416-20 guruh talabasi




Download 288,44 Kb.
bet4/4
Sana03.12.2023
Hajmi288,44 Kb.
#110324
1   2   3   4
Bog'liq
mustaqil ishi -1 tarmoq dasturlashdan
instruksiya-po-oformleniyu-zayavki, rejalarni, O’zbekiston respublikasi axborot texnologiyalari va kommunikatsi-fayllar.org, TEMPLATE-for-E3S, Монографиялар рўйхати, 8- semestr labaratoriya 1, Ielts space vocabulary, RayimovaZMuzey (1)

Server: SocketChannelServer.java


import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.SocketChannel;
import java.nio.file.Path;
import java.nio.file.Paths;

public class SocketChannelServer {


public static void main(String[] args) throws IOException {
SocketChannel server = SocketChannel.open();
SocketAddress socketAddr = new InetSocketAddress("localhost", 9000);
server.connect(socketAddr);

Path path = Paths.get("C:/Test/temp.txt");


FileChannel fileChannel = FileChannel.open(path);
ByteBuffer buffer = ByteBuffer.allocate(1024);
while(fileChannel.read(buffer) > 0) {
buffer.flip();
server.write(buffer);
buffer.clear();
}
fileChannel.close();
System.out.println("File Sent");
server.close();
}
}
JAVA IO va JAVA NIO o`rtasidagi farq
Java IO (Input/Output) o'qish va yozish operatsiyalarini bajarish uchun ishlatiladi. java.io to'plami kiritish va chiqarish operatsiyalari uchun zarur bo'lgan barcha sinflarni o'z ichiga oladi. Holbuki, Java NIO (Yangi IO) yuqori tezlikdagi IO operatsiyalarini amalga oshirish uchun JDK 4 dan kiritilgan. Bu standart IO API-ga muqobildir. Ushbu maqolada ushbu ikkita IO paketi o'rtasidagi farq muhokama qilinadi.
Java IO va Java NIO o'rtasidagi farqni tushunishdan oldin biz ikkala I/U paketini farqlovchi bir nechta asosiy tushunchalarni tushunishimiz kerak:
Oqimga yo'naltirilgan va buferga yo'naltirilgan paketlar:
Java IO - bu oqimga yo'naltirilgan paket bo'lib, uni oqimdan bir vaqtning o'zida bir yoki bir nechta bayt o'qish mumkin degan ma'noni anglatadi. Ma'lumotlar manbai/sink va java dasturi o'rtasida ma'lumotlarni uzatish uchun oqimdan foydalanadi. Bu bir tomonlama ma'lumotlarni uzatish. Quyidagi rasm oqimga yo'naltirilgan paketni ko'rsatadi:

Java IO dan farqli o'laroq, Java NIO buferga yo'naltirilgan paketdir. Bu shuni anglatadiki, ma'lumotlar kanal yordamida keyingi ishlov beriladigan buferga o'qiladi. Masalan, kanaldan ma'lumotlarni buferga o'qishni so'ragan ip va kanal bir vaqtning o'zida buferga ma'lumotlarni o'qiyotganda, ip boshqa ishga ketishi mumkin. Ma'lumotlar buferga o'qilgandan so'ng, ip o'qish jarayonida qoldirgan ishni qayta ishlashni davom ettirishi mumkin. Shuning uchun NIO ikki tomonlama ma'lumotlarni uzatishdir. Quyidagi rasmda buferga yo'naltirilgan paket ko'rsatilgan:

IOni blokirovka qilish va bloklanmaydigan IO paketlari:
Java IO blokirovka qiluvchi IO hisoblanadi. Bu shuni anglatadiki, agar ip o'qish () yoki yozish () operatsiyasini chaqirsa, o'qish uchun ma'lumotlar mavjud bo'lgunga qadar yoki ma'lumotlar to'liq yozilgunga qadar bu ip bloklanadi. Shuning uchun u sinxron IO yoki blokirovka qiluvchi IO.
Java IO dan farqli o'laroq, Java NIO bloklanmaydigan IO hisoblanadi. Bu shuni anglatadiki, agar ip o'qish() yoki yozish() amallarini chaqirayotgan bo'lsa, o'qilishi kerak bo'lgan ma'lumotlar mavjud bo'lmaguncha yoki ma'lumotlar to'liq yozilmaguncha bu ip bloklanmaydi, aksincha ip boshqa narsaga o'tadi. Shuning uchun bu asinxron IO yoki bloklanmaydigan IO.
Kanallar:
Kanal ob'ekt va bufer o'rtasida ma'lumotlarni samarali uzatish uchun vositadir. U ma'lumotlar manbai/sink bilan ochiq ulanish uchun shlyuz vazifasini bajaradi.
Selektor:
Selektor bitta ip yordamida bir nechta IO kanallari orasidan kanalni tanlaydi.


Quyidagi jadval Java IO va Java NIO o'rtasidagi farqlarni ko'rsatadi :

Java IO

Java NIO

Java IO Java Input Output degan ma'noni anglatadi

Java NIO Java New Input Output degan ma'noni anglatadi

Java IO java.io paketi ichida ishlaydi

Java NIO java.nio paketi ichida ishlaydi

Java IO oqimga yo'naltirilgan

Java NIO buferga yo'naltirilgan

IO ishlashini bloklash

Bloklanmagan IO ishlashi

Kanallar mavjud emas

Kanallar mavjud

U oqimdagi ma'lumotlar bilan shug'ullanadi

U bloklardagi ma'lumotlar bilan shug'ullanadi

Tanlovchilar kontseptsiyasini o'z ichiga olmaydi

Tanlovchilar tushunchasini o'z ichiga oladi

Download 288,44 Kb.
1   2   3   4




Download 288,44 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



O’zbekiston respublikasi raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti telekommunikatsiya fakulteti 416-20 guruh talabasi

Download 288,44 Kb.