Last Updated on March 16, 2023 by
Java Networking merupakan saat perangkat komputasi seperti laptop, desktop, server, Smartphone, dan tablet serta pengaturan gadget IoT yang terus berkembang berbagi informasi dan data satu sama lain.
Pemrograman jaringan mengacu pada penulisan program yang dijalankan di beberapa perangkat (komputer), di mana perangkat tersebut terhubung satu sama lain melalui jaringan. Java merangkum class dan antarmuka untuk memungkinkan detail komunikasi tingkat rendah. Pada artikel ini, kita akan sama sama belajar Java Networking.
Table of Contents
Pengantar Java Networking
Jaringan melengkapi banyak kekuatan untuk program sederhana. Dengan jaringan, satu program dapat memperoleh kembali informasi yang disimpan di jutaan komputer yang ditempatkan di mana saja di dunia. Java adalah bahasa pemrograman terkemuka yang disusun dari awal dengan mempertimbangkan jaringan.
Java Networking merupakan gagasan menghubungkan dua atau lebih perangkat komputasi bersama-sama untuk berbagi sumber daya. Program Java berinteraksi melalui jaringan pada lapisan aplikasi. paket java.net berguna untuk semua class dan antarmuka jaringan Java.
Java memiliki API jaringan bawaan yang cukup mudah digunakan yang membuatnya mudah untuk berkomunikasi melalui socket TCP/IP atau socket UDP melalui internet. TCP biasanya lebih sering digunakan daripada UDP.
Protokol Jaringan Umum
Seperti yang dinyatakan sebelumnya, paket java.net dari bahasa pemrograman Java mencakup berbagai class dan antarmuka yang menyediakan sarana yang mudah digunakan untuk mengakses sumber daya jaringan. Selain class dan antarmuka, paket java.net juga menyediakan dukungan untuk dua protokol jaringan terkenal. Berikut ini :
Transmission Control Protocol (TCP) – TCP atau Transmission Control Protocol
Memungkinkan komunikasi yang aman antara aplikasi yang berbeda. TCP adalah protokol berorientasi koneksi yang berarti bahwa setelah koneksi dibuat, data dapat ditransmisikan dalam dua arah. Protokol ini biasanya digunakan melalui Protokol Internet. Oleh karena itu, TCP juga disebut sebagai TCP/IP. TCP memiliki metode bawaan untuk memeriksa kesalahan dan memastikan pengiriman data sesuai urutan pengirimannya, menjadikannya protokol lengkap untuk mengangkut informasi seperti gambar diam, file data, dan halaman web.
User Datagram Protocol (UDP) – UDP atau User Datagram Protocol
Protokol tanpa koneksi yang memungkinkan paket data ditransmisikan antara aplikasi yang berbeda. UDP adalah protokol Internet yang lebih sederhana di mana layanan pemeriksaan kesalahan dan pemulihan tidak diperlukan. Di UDP, tidak ada overhead untuk membuka koneksi, memelihara koneksi, atau mengakhiri koneksi. Di UDP, data terus dikirim ke penerima, apakah mereka menerimanya atau tidak.
Terminologi Java Networking
Pada Java Networking, banyak terminologi yang sering digunakan. Terminologi Jaringan Java yang banyak digunakan ini diberikan sebagai berikut:
Alamat IP
Alamat IP adalah alamat unik yang membedakan perangkat di internet atau jaringan lokal. IP adalah singkatan dari “Internet Protocol.” Ini terdiri dari seperangkat aturan yang mengatur format data yang dikirim melalui internet atau jaringan lokal. Alamat IP disebut sebagai alamat logis yang dapat dimodifikasi. Ini terdiri dari oktet. Kisaran setiap oktet bervariasi dari 0 hingga 255.
Rentang Alamat IP – 0.0.0.0 hingga 255.255.255.255
Nomor Port
Nomor port adalah metode untuk mengenali proses tertentu yang menghubungkan internet atau informasi jaringan lainnya ketika mencapai server. Nomor port digunakan untuk mengidentifikasi berbagai aplikasi secara unik. Nomor port berperilaku sebagai titik akhir komunikasi antar aplikasi. Nomor port berkorelasi dengan alamat IP untuk transmisi dan komunikasi antara dua aplikasi. Ada 65.535 nomor port, tetapi tidak semuanya digunakan setiap hari.
Protokol
Protokol jaringan adalah seperangkat perintah terorganisir yang menentukan bagaimana data ditransmisikan antara perangkat yang berbeda di jaringan yang sama. Protokol jaringan adalah alasan di mana pengguna dapat dengan mudah berkomunikasi dengan orang-orang di seluruh dunia dan dengan demikian memainkan peran penting dalam komunikasi digital modern. Misalnya – TCP, FTP, POP, dll.
Alamat MAC
Alamat MAC merupakan singkatan dari alamat Kontrol Akses Media. Ini adalah pengidentifikasi yang dialokasikan ke NIC (Pengontrol Antarmuka Jaringan/Kartu). Ini berisi alamat 48 bit atau 64 bit, yang digabungkan dengan adaptor jaringan. Alamat MAC didapat dalam komposisi heksadesimal. Dengan kata sederhana, alamat MAC adalah nomor unik yang digunakan untuk melacak perangkat di jaringan.
Socket
Socket adalah salah satu titik akhir dari koneksi komunikasi dua arah antara dua aplikasi yang berjalan di jaringan. Mekanisme socket menyajikan metode komunikasi antar proses (IPC) dengan mengatur titik kontak bernama dimana komunikasi terjadi. Socket diikat ke nomor port sehingga lapisan TCP dapat mengenali aplikasi tujuan pengiriman data.
Protokol berorientasi koneksi dan tanpa koneksi Java networking
Dalam layanan berorientasi koneksi, pengguna harus membuat koneksi sebelum memulai komunikasi. Saat koneksi dibuat, pengguna dapat mengirim pesan atau informasi, dan setelah ini, mereka dapat melepaskan koneksi. Namun, dalam protokol tanpa koneksi, data diangkut dalam satu rute dari sumber ke tujuan tanpa memverifikasi apakah tujuan masih ada atau tidak atau siap menerima pesan. Otentikasi tidak diperlukan dalam protokol connectionless.
Contoh Protokol Berorientasi Koneksi – Protokol Kontrol Transmisi (TCP)
Contoh Protokol Tanpa Koneksi – Protokol Datagram Pengguna (UDP)
Pemrograman Socket
Pemrograman Java Socket dipraktikkan untuk komunikasi antara aplikasi yang bekerja pada JRE yang berbeda. Socket mengimplementasikan alat komunikasi antara dua komputer menggunakan TCP. Pemrograman Java Socket dapat berupa connection-oriented atau connection-less. Dalam Pemrograman Socket, class Socket dan ServerSocket dikelola untuk pemrograman socket berorientasi koneksi. Namun, class DatagramSocket dan DatagramPacket digunakan untuk pemrograman socket tanpa koneksi.
Class java.net.Socket mendeskripsikan socket, dan class java.net.ServerSocket mengimplementasikan alat untuk program server untuk menghosting klien dan membangun koneksi dengan mereka.
Langkah-langkah untuk membuat koneksi TCP antara dua perangkat komputasi menggunakan Pemrograman Socket
Berikut ini adalah langkah-langkah yang terjadi pada pembuatan koneksi TCP antara dua komputer menggunakan pemrograman socket diberikan sebagai berikut:
Langkah 1 – Server memberi contoh objek ServerSocket, yang menunjukkan di mana komunikasi nomor port akan terjadi.
Langkah 2 – Setelah membuat instance objek ServerSocket, server meminta metode accept() dari class ServerSocket. Program ini berhenti sampai klien terhubung ke server pada port yang diberikan.
Langkah 3 – Setelah server diam, klien memberi contoh objek class Socket, menentukan nama server dan nomor port yang akan dihubungkan.
Langkah 4 – Setelah langkah di atas, konstruktor class Socket berusaha menghubungkan klien ke server yang ditunjuk dan nomor port. Jika komunikasi diautentikasi, klien segera memiliki objek Socket yang mahir dalam berinteraksi dengan server.
Langkah 5 – Di sisi server, metode accept() mengembalikan referensi ke socket baru di server yang terhubung ke socket klien.
Setelah koneksi stabil, komunikasi dapat terjadi menggunakan aliran I/O. Setiap objek dari class socket memiliki OutputStream dan InputStream. OutputStream klien berkorelasi dengan InputStream server, dan InputStream klien digabungkan dengan OutputStream server. Transmission Control Protocol (TCP) adalah protokol komunikasi dua arah. Karenanya informasi dapat ditransmisikan melalui kedua aliran pada waktu yang sesuai.
Class Socket
Class Socket digunakan untuk membuat objek socket yang membantu pengguna dalam mengimplementasikan semua operasi dasar socket. Pengguna dapat menerapkan berbagai tindakan jaringan seperti mengirim, membaca data, dan menutup koneksi.
Metode Class Socket
Dalam pemrograman Socket, klien dan server memiliki objek Socket, sehingga semua metode di bawah class Socket dapat dipanggil oleh klien dan server.
No. | Method | Keterangan |
1 | public void connect(SocketAddress host, int timeout) | Metode ini digunakan untuk menghubungkan socket ke host tertentu. Metode ini diperlukan hanya ketika pengguna membuat instance Socket yang menerapkan konstruktor tanpa argumen. |
2 | public int getPort() | Metode ini digunakan untuk mengembalikan port tempat socket disematkan pada mesin jarak jauh. |
3 | public InetAddress getInetAddress() | Metode ini digunakan untuk mengembalikan lokasi komputer lain yang terhubung dengan socket. |
4 | public int getLocalPort() | Metode ini digunakan untuk mengembalikan port tempat socket digabungkan pada mesin lokal. |
5 | public SocketAddress getRemoteSocketAddress() | Metode ini mengembalikan lokasi socket jarak jauh. |
6 | public InputStream getInputStream() | Metode ini digunakan untuk mengembalikan aliran input socket. Aliran input ini digabungkan dengan aliran output dari socket jarak jauh. |
7 | public OutputStream getOutputStream() | Metode ini digunakan untuk mengembalikan aliran keluaran socket. Aliran output digabungkan dengan aliran input dari socket jarak jauh. |
8 | public void close() | Metode ini digunakan untuk menutup socket, yang menyebabkan objek class Socket tidak lagi dapat terhubung ke server mana pun. |
Class ServerSocket
Class ServerSocket digunakan untuk menyediakan implementasi sistem-independen dari sisi server dari Koneksi Socket klien/server. Konstruktor untuk class ServerSocket melontarkan pengecualian jika tidak dapat merespon pada port yang ditentukan.
Metode Class ServerSocket
Ada banyak metode di class ServerSocket yang sangat berguna bagi pengguna. Metode-metode ini adalah:
No. | Method | Keterangan |
1 | public int getLocalPort() | Metode ini digunakan untuk mengembalikan port yang dipantau oleh socket server. Metode ini bermanfaat jika pengguna memberikan 0 sebagai nomor port di konstruktor dan membiarkan server menemukan port untuknya. |
2 | public void setSoTimeout(int timeout) | Metode ini digunakan untuk menyetel nilai batas waktu untuk waktu di mana socket server dijeda untuk klien selama metode accept(). |
3 | public Socket accept() | Metode ini menunggu klien yang masuk. Metode ini diblokir hingga klien menggabungkan ke server pada port yang ditentukan atau socket habis waktu, mengingat nilai batas waktu telah disetel menggunakan metode setSoTimeout() . Jika tidak, metode ini akan diblokir tanpa batas. |
4 | public void bind(SocketAddress host, int backlog) | Metode ini digunakan untuk mengikat socket ke server dan port tertentu di objek SocketAddress. Pengguna harus menggunakan metode ini jika dia membuat ServerSocket menggunakan konstruktor tanpa argumen. |
Contoh Pemrograman Socket Pada Java Networking
Contoh di bawah ini mengilustrasikan pengaturan Klien dan Server satu arah yang cukup mendasar di mana Klien terhubung, mengirim pesan ke server dan server menunjukkannya menggunakan koneksi socket.
Implementasi Socket Java Networking Sisi Klien:
// A Java program for a ClientSide import java.io.*; import java.net.*; public class clientSide { private Socket socket = null; private DataInputStream input = null; private DataOutputStream out = null; public clientSide(String address, int port) { try { socket = new Socket(address, port); System.out.println("Connected"); input = new DataInputStream(System.in); out = new DataOutputStream( socket.getOutputStream()); } catch (UnknownHostException u) { System.out.println(u); } catch (IOException i) { System.out.println(i); } String line = ""; while (!line.equals("End")) { try { line = input.readLine(); out.writeUTF(line); } catch (IOException i) { System.out.println(i); } } try { input.close(); out.close(); socket.close(); } catch (IOException i) { System.out.println(i); } } public static void main(String[] args) { clientSide client = new clientSide("127.0.0.1", 5000); } }
Implementasi Socket Jaringan Java Sisi Server
import java.io.*; import java.net.*; public class serverSide { private Socket socket = null; private ServerSocket server = null; private DataInputStream in = null; public serverSide(int port) { try { server = new ServerSocket(port); System.out.println("Server started"); System.out.println("Waiting for a client ..."); socket = server.accept(); System.out.println("Client accepted"); in = new DataInputStream( new BufferedInputStream( socket.getInputStream())); String line = ""; while (!line.equals("End")) { try { line = in.readUTF(); System.out.println(line); } catch (IOException i) { System.out.println(i); } } System.out.println("Closing connection"); socket.close(); in.close(); } catch (IOException i) { System.out.println(i); } } public static void main(String[] args) { serverSide server = new serverSide(5000); } }
Alamat Inet
Class InetAddress digunakan untuk menyediakan metode untuk mendapatkan alamat IP dari nama host apa pun. Alamat IP dinyatakan dengan nomor unsigned 32-bit atau 128-bit. Objek InetAddress menjelaskan alamat IP dengan nama host analognya. InetAddress dapat mengontrol alamat IPv4 dan IPv6.
Ada dua jenis alamat yang berbeda:
- Unicast – Ini adalah pengidentifikasi untuk satu antarmuka.
- Multicast – Ini adalah pengidentifikasi untuk kumpulan antarmuka.
Metode Kelas InetAddress
Class Java InetAddress mewakili alamat IP. Berikut ini adalah metode penting dari class InetAddress
No. | Method | Keterangan |
1 | static InetAddress getByAddress(byte[] addr) | Metode ini digunakan untuk mengembalikan objek kelas InetAddress asalkan alamat IP mentah. |
2 | static InetAddress getByAddress(String host, byte[] addr) | Metode ini digunakan untuk membuat InetAddress berdasarkan nama host dan alamat IP yang diberikan. |
3 | static InetAddress getByName(String host) | Metode ini digunakan untuk menentukan alamat IP dari sebuah host ketika nama host diberikan. |
4 | static InetAddress InetAddress getLocalHost() | Metode ini digunakan untuk mengembalikan localhost. |
5 | String getHostName() | Metode ini digunakan untuk mendapatkan nama alamat IP. |
6 | String getHostAddress() | Metode ini mengembalikan alamat IP dalam bentuk string dalam tampilan tekstual. |
7 | String toString() | Metode ini digunakan untuk mengubah alamat IP menjadi string. |
Contoh 1
import java.net.*; public class InetAddressExample1 { public static void main(String[] args) throws UnknownHostException{ InetAddress address = InetAddress.getLocalHost(); System.out.println("InetAddress of the Local Host : "+address); String hostName=address.getHostName(); System.out.println("\nHost name of the Local Host : "+hostName); } }
Contoh 2
import java.net.*; public class InetAddressExample2 { public static void main(String[] args) throws UnknownHostException { InetAddress address1 = InetAddress.getByName( "write.codekey.id"); System.out.println("Inet Address of named hosts : " + address1); InetAddress arr[] = InetAddress.getAllByName( "www.codekey.id/"); System.out.println("\nInet Address of ALL named hosts :"); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
Class URL
Class URL di Java Networking adalah titik masuk ke semua sumber yang tersedia di internet. URL Kelas menggambarkan Uniform Resource Locator, yang merupakan sinyal ke “resource” di World Wide Web.
Resource dapat menunjukkan file atau direktori sederhana, atau dapat menunjukkan objek yang lebih sulit, seperti kueri ke database atau mesin telusur. URL adalah rangkaian teks yang mengenali semua sumber di Internet, menunjukkan kepada kita alamat sumber, cara berinteraksi dengannya, dan memulihkan sesuatu darinya.
Komponen URL
Sebuah URL dapat memiliki banyak bentuk. Namun yang paling umum mengikuti sistem tiga komponen-
- Protokol – Protokol dalam URL menentukan bagaimana informasi diangkut antara host dan klien (atau browser web).
- Hostname – Nama host adalah nama perangkat tempat sumber daya berada.
- Nama File – Nama file adalah nama jalur ke file di perangkat.
- Nomor Port – Nomor port digunakan untuk mengidentifikasi berbagai aplikasi secara unik. Ini biasanya opsional.
Metode Kelas URL Java
Ada banyak metode di Kelas URL Java yang umum digunakan di Jaringan Java. Metode-metode ini adalah:
No. | Methods | Keterangan |
1 | public String getProtocol() | Metode ini mengembalikan protokol yang digunakan oleh URL. |
2 | public String getHost() | Metode ini mengembalikan nama host URL dalam komposisi IPv6. |
3 | public int getPort() | Metode ini mengembalikan port yang terkait dengan protokol yang ditentukan oleh URL. |
4 | public String getFile() | Metode ini mengembalikan nama file. |
5 | public String getPath() | Metode ini mengembalikan jalur URL, atau null jika kosong. |
6 | public String toString() | Metode ini digunakan untuk mengembalikan representasi string dari objek URL yang disediakan. |
7 | public int getDefaultPort() | Metode ini mengembalikan port default yang digunakan. |
Contoh
import java.net.*; public class URLclassExample { public static void main(String[] args) throws MalformedURLException { URL url = new URL( " https://codekey.id/java/java-collection/ "); String protocol = url.getProtocol(); System.out.println("Protocol : " + protocol); String host = url.getHost(); System.out.println("HostName : " + host); String fileName = url.getFile(); System.out.println("File Name : " + fileName); } }
Temukan lebih banyak artikel seri belajar Java maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.