Pemrograman Socket di Java: Panduan Singkat

Diterbitkan: 2022-05-21

Di Jawa, pemrograman soket adalah sarana untuk berkomunikasi lintas program dan tetap terhubung ke JRE yang berbeda — baik server berorientasi koneksi maupun server non-koneksi. Soket server Java digunakan secara eksklusif untuk memulai dan memproses komunikasi antara server dan klien.

Blog ini akan membahas semua yang perlu diketahui tentang pemrograman socket.

Daftar isi

Pemrograman Soket di Jawa

Pemrograman soket adalah proses melengkapi dan menggunakan node jaringan yang terpisah secara interaktif. Ini adalah sistem komunikasi dua arah di mana satu soket (node) mendengarkan pada port tertentu pada alamat IP sementara soket lainnya terhubung.

Soket di Jawa

Di Jawa, soket adalah salah satu ujung saluran komunikasi dua arah yang menghubungkan dua program jaringan. Lapisan TCP digunakan untuk menetapkan nomor port ke soket Java yang diberikan untuk mengidentifikasi aplikasi yang kita transfer datanya. Kami menggunakan kombinasi alamat IP dan nomor port untuk membuat titik akhir.

Platform Java menyertakan kelas yang disebut Socket, yang mengimplementasikan satu sisi koneksi jaringan dua arah antara aplikasi Java Anda dan program lain. Kelas berada di atas implementasi platform-independen, melindungi program Java Anda dari detail khusus sistem.

Dengan menggunakan kelas alih-alih kode asli tertentu, program Java Anda dapat berkomunikasi melalui jaringan dengan cara yang tidak bergantung pada platform.

Selain itu, java.net menyertakan kelas ServerSocket, yang mengimplementasikan soket yang dapat digunakan server untuk mendengarkan dan menerima koneksi dari klien. Ini adalah contoh yang menunjukkan cara menggunakan kelas ServerSocket dan Socket.

Antara port sisi klien dan port sisi server, koneksi dibuat.

Membuat Koneksi Soket Java [SISI KLIEN]

Sebelum melanjutkan dengan pemrograman sisi klien, klien harus menunggu inisiasi server. Setelah aktif dan berjalan, itu akan mulai mengirim kueri ke server Java. Klien kemudian akan menunggu respons server. Ini adalah ringkasan yang baik dari logika koneksi client-server.

Mari kita lihat pemrograman sisi klien secara lebih rinci.

Untuk terhubung ke komputer lain, Anda memerlukan koneksi soket. Kedua komputer harus tahu di mana mereka berada di jaringan (Alamat IP) dan port TCP mana yang mereka gunakan untuk membuat koneksi soket. Kerangka kerja java.net menunjukkan kelas soket.

Alamat IP server adalah argumen input pertama. Port TCP adalah parameter berikutnya di sini. (Ini tidak lebih dari angka yang memberitahu program mana yang harus dijalankan di server.) HTTP, misalnya, menggunakan port 80. Biasanya, kisaran nomor port terletak dari 0 hingga 65535.

Komunikasi

Aliran digunakan untuk input dan output data saat berkomunikasi melalui koneksi soket. Setelah Anda mengirim permintaan dan membuat koneksi yang kuat, Anda harus mematikan koneksi soket.

Menutup Koneksi Soket Server Java

Koneksi soket ditutup secara eksplisit setelah mengirim pesan ke server, koneksi soket ditutup secara eksplisit.

// Demo program Java untuk Klien

impor java.net.*;

impor java.io.*;

Client_Side_Program kelas publik

{

// untuk menginisialisasi aliran soket, aliran input, dan aliran output

soket soket pribadi = null;

masukan DataInputStream pribadi = null;

private DataOutputStream out = null;

// konstruktor untuk meletakkan port TCP dan alamat IP

Klien publik (Tambah string, port int)

{

// buat koneksi

mencoba

{

socket = soket baru (tambahkan, port);

System.out.println(“Terhubung”);

// mengambil input dari terminal

masukan = new DataInputStream(System.in);

// mengirim output ke soket

out = new DataOutputStream(socket.getOutputStream());

}

tangkap (UnknownHostException u)

{

System.out.println(u);

}

tangkap(IOException i)

{

System.out.println(i);

}

// string untuk membaca pesan dari input

String baris = “”;

// terus membaca sampai "Over" dimasukkan

while (!line.equals("Atas"))

{

mencoba

{

baris = input.readLine();

out.writeUTF(baris);

}

tangkap(IOException i)

{

System.out.println(i);

}

}

// tutup koneksi

mencoba

{

masukan.tutup();

keluar.tutup();

soket.tutup();

}

tangkap(IOException i)

{

System.out.println(i);

}

}

public static void main(String args[])

{

Klien klien = Klien baru(“127.0.0.1”, 5000);

}

}

Untuk mengunjungi sumber kode ini, klik di sini .

Membuat Koneksi Soket Java [SERVER SIDE]

Server membuat objeknya dan menunggu permintaan klien sambil mempertimbangkan koneksi sisi soket server Java. Server akan berinteraksi dengan klien setelah permintaan telah dikirim. Anda memerlukan dua soket untuk mengkodekan aplikasi sisi server, yaitu sebagai berikut – ketika klien membuat Socket() baru, ServerSocket dibuat untuk menunggu permintaan klien. Soket sederhana dapat didefinisikan sebagai program yang memulai komunikasi sisi server dengan klien. Anda dapat mengkomunikasikan tanggapan dengan klien yang sesuai, setelah Anda mendapatkan laporan dari koneksi soket sisi server java.

Komunikasi

Untuk menggunakan soket untuk mengirim output, kami biasanya berharap untuk menggunakan metode getOutputStream() .

Menutup Koneksi Soket Server Java

Sangat penting untuk menyelesaikan koneksi dengan mematikan soket dan aliran input-output.

// Program java Server

impor java.net.*;

impor java.io.*;

Server kelas publik

{

//inisialisasi socket dan input stream

soket soket pribadi = null;

server ServerSocket pribadi = null;

DataInputStream pribadi di = null;

// konstruktor dengan port

Server publik (port int)

{

// menunggu koneksi setelah memulai server

mencoba

{

server = ServerSocket baru(port);

System.out.println(“Server: dimulai”);

System.out.println(“Menunggu kedatangan klien…”);

soket = server.terima();

System.out.println(“Klien telah diterima”);

// untuk mengambil input soket klien

di = new DataInputStream(

baru BufferedInputStream(socket.getInputStream()));

String baris = “”;

// untuk membaca pesan dari klien sampai “Over” terkirim

while (!line.equals("Atas"))

{

mencoba

{

baris = in.readUTF();

System.out.println(baris);

}

tangkap(IOException i)

{

System.out.println(i);

}

}

System.out.println(“Menutup koneksi”);

// tutup koneksi

soket.tutup();

melampirkan();

}

tangkap(IOException i)

{

System.out.println(i);

}

}

public static void main(String args[])

{

Server server = Server baru(5000);

}

}

Untuk memeriksa detail kode ini, klik di sini .

Anda dapat menjalankan perangkat lunak sisi server terlebih dahulu setelah mengkonfigurasi klien dan server berakhir. Kemudian, Anda harus menjalankan perangkat lunak sisi klien dan mengirim permintaan. Server akan segera bereaksi ketika permintaan datang dari ujung klien.

Jelajahi Kursus Rekayasa Perangkat Lunak Populer kami

TL. Tidak Program Pengembangan Perangkat Lunak
1 Master of Science dalam Ilmu Komputer dari LJMU & IIITB Program Sertifikat Keamanan Siber CTME Caltech
2 Bootcamp Pengembangan Tumpukan Penuh Program PG di Blockchain
3 Program Pascasarjana Eksekutif dalam Pengembangan Perangkat Lunak - Spesialisasi dalam DevOps Lihat semua Kursus Rekayasa Perangkat Lunak

Terminal atau Command Prompt Berjalan

Untuk memulai Terminal atau Command Prompt, kami akan menggunakan perintah berikut. Untuk memulainya, kita akan membuat dua jendela, satu akan didedikasikan untuk server dan yang lainnya untuk klien.

  1. Biarkan program Server mulai berjalan.

$java Server

  1. Kemudian, di terminal yang berbeda, luncurkan aplikasi Klien sebagai,

klien java $

Perangkat lunak akan menampilkan “Connected” dan “Client Accepted” saat server menerima klien.

  1. Di kotak Klien, Anda kemudian dapat mulai memasukkan pesan. Berikut ini contoh input Klien.

Hai! Ini menandai koneksi soket profesional pertama saya.

Yang didapat dan ditampilkan oleh Server secara bersamaan

Hai! Ini menandai koneksi soket profesional pertama saya.

Lebih.

Menutup koneksi

Seperti yang dinyatakan sebelumnya, mengirim "Over" mengakhiri koneksi antara Klien dan Server.

Baca Artikel Populer kami yang terkait dengan Pengembangan Perangkat Lunak

Bagaimana Menerapkan Abstraksi Data di Jawa? Apa itu Kelas Dalam di Jawa? Java Identifiers: Definisi, Sintaks, dan Contoh
Memahami Enkapsulasi dalam OOPS dengan Contoh Argumen Baris Perintah di C Dijelaskan 10 Fitur & Karakteristik Terbaik Cloud Computing di tahun 2022
Polimorfisme di Jawa: Konsep, Jenis, Karakteristik & Contoh Paket di Java & Bagaimana Cara Menggunakannya? Tutorial Git Untuk Pemula: Belajar Git dari Awal

Kesimpulan

Pemrograman Java Socket adalah alat penting yang menggunakan API soket untuk membangun komunikasi antara aplikasi client-server lokal dan jarak jauh. Pengetahuan yang tepat tentang pemrograman soket dapat meningkatkan koneksi server dan klien ke sana kemari.

Jika Anda ingin belajar Java dan menguasai pengembangan full-stack, kami memiliki kursus berdampak tinggi untuk Anda: Program PG Eksekutif upGrad dalam Pengembangan Perangkat Lunak – Spesialisasi dalam Pengembangan Full Stack .

Program 13 bulan dari IIIT-B dirancang untuk membantu siswa memperoleh keterampilan seperti Dasar-dasar Ilmu Komputer, Proses Pengembangan Perangkat Lunak, API Backend, dan UI Web Interaktif. Anda mendapatkan akses ke Bootcamp Transisi Karir Perangkat Lunak baik untuk pembuat kode non-teknologi dan baru untuk mengasah keterampilan pemrograman mereka dan dukungan karir 360° dari upGrad.

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Apa manfaat mempelajari pemrograman soket Java?

Soket dapat digunakan untuk membangun aplikasi klien-server, seperti obrolan, dari sudut pandang jaringan. Soket diimplementasikan pada tingkat keamanan paling dasar untuk mengetahui apakah port sistem terbuka, apakah ada program pemindai port standar seperti Nmap dan apakah dapat digunakan pada tingkat rendah. Mereka dapat digunakan dengan cara yang sama seperti perintah SSH - Secure Socket Shell dapat digunakan untuk terhubung ke server eksternal melalui shell terbalik.

Apa yang dilakukan fungsi terima?

Fungsi accept menunggu klien untuk terhubung ke server dengan memblokir tetap di sana sampai argumen tiba. Kemudian kita menggunakan fungsi getInputStream untuk mendapatkan input dari socket. Server dirancang sedemikian rupa sehingga terus menerima pesan terkirim hingga perintah Over diterima.

Mengapa utas digunakan dalam pemrograman jaringan?

Kami ingin beberapa klien bergabung secara bersamaan. Jadi, kita harus menggunakan utas di sisi server sehingga utas yang berbeda dapat menangani setiap permintaan klien. Mari kita asumsikan situasi di mana dua permintaan datang di server secara bersamaan. Karena tidak ada metode untuk memproses beberapa permintaan secara bersamaan yang diberikan dalam aplikasi klien-server sederhana kami, permintaan yang datang bahkan lebih awal dari nanodetik akan dapat terhubung ke server, sementara permintaan lainnya akan ditolak.