Home » Java » Java Networking: Penjelasan – Fungsi dan Source Code

Java Networking: Penjelasan – Fungsi dan Source Code

by Bagus Dharma Iswara
by Bagus Dharma Iswara

Java Networking adalah konsep menghubungkan dua atau lebih perangkat komputasi secara bersamaan sehingga kita dapat berbagi sumber daya. Pemrograman soket Java menyediakan fasilitas untuk berbagi data antara perangkat komputasi yang berbeda.

Keuntungan Networking di Java

  1. Sharing resources.
  2. Centralize software management

Istilah pemrograman jaringan mengacu pada menulis program yang dijalankan di beberapa perangkat (komputer), di mana semua perangkat terhubung satu sama lain menggunakan jaringan. Paket java.net dari J2SE API berisi kumpulan kelas dan antarmuka yang menyediakan detail komunikasi tingkat rendah, memungkinkan Anda untuk menulis program yang berfokus pada pemecahan masalah yang dihadapi.

Paket java.net menyediakan dukungan untuk dua protokol jaringan yang umum

  • TCP yaitu TCP adalah singkatan dari Transmission Control Protocol, yang memungkinkan komunikasi yang andal antara dua aplikasi. TCP biasanya digunakan melalui Protokol Internet, yang disebut sebagai TCP / IP.
  • UDP  yaitu UDP adalah singkatan dari User Datagram Protocol, sebuah protokol tanpa koneksi yang memungkinkan paket data dikirim antar aplikasi.

Pembahasan kali ini akan membahas mengenai 2 topik penting yaitu

  1. Socket Programming yaitu Ini adalah konsep yang paling banyak digunakan dalam Jaringan dan telah dijelaskan dengan sangat rinci.
  2. URL Processing yaitu URL adalah singkatan dari Uniform Resource Locator dan mewakili sumber daya di World Wide Web, seperti halaman Web atau direktori FTP. Bagian ini menunjukkan kepada Anda bagaimana menulis program Java yang berkomunikasi dengan URL

Terminologi Networking di Java

Terminologi jaringan java yang banyak digunakan diberikan di bawah ini

  1. IP Address.
  2. Protocol.
  3. Port Number.
  4. MAC Address.
  5. Connection-oriented and connection-less protocol.
  6. Socket.

IP Address

Alamat IP adalah nomor unik yang ditetapkan ke simpul jaringan, mis. 192.168.0.1. Ini terdiri dari oktet yang berkisar dari 0 hingga 255. Ini adalah alamat logis yang dapat diubah.

Protocol

Protokol adalah seperangkat aturan yang pada dasarnya diikuti untuk komunikasi. Sebagai contohnya yaitu

  • TCP
  • FTP
  • Telnet
  • SMTP
  • POP

Port Number

Nomor port digunakan untuk mengidentifikasi aplikasi yang berbeda secara unik. Ini bertindak sebagai titik akhir komunikasi antar aplikasi. Nomor port dikaitkan dengan alamat IP untuk komunikasi antara dua aplikasi.

MAC Address

Alamat MAC (Media Access Control) adalah pengenal unik NIC (Network Interface Controller). Node jaringan dapat memiliki beberapa NIC tetapi masing-masing dengan MAC unik.

Connection-oriented dan Connection-less protocol

Dalam protokol berorientasi koneksi, pengakuan dikirim oleh penerima. Jadi bisa diandalkan tapi lambat. Contoh dari protokol berorientasi koneksi adalah TCP. Namun, dalam protokol tanpa koneksi, pengakuan tidak dikirim oleh penerima. Jadi tidak bisa diandalkan tapi cepat. Contoh dari protokol tanpa koneksi adalah UDP.

Socket

Soket adalah titik akhir antara komunikasi dua arah.

Java.net Package

Paket java.net menyediakan banyak kelas untuk menangani aplikasi jaringan di Java. Daftar kelas ini diberikan di bawah ini:

  • Authenticator
  • CacheRequest
  • CacheResponse
  • ContentHandler
  • CookieHandler
  • CookieManager
  • DatagramPacket
  • DatagramSocket
  • DatagramSocketImpl
  • InterfaceAddress
  • JarURLConnection
  • MulticastSocket
  • InetSocketAddress
  • InetAddress
  • Inet4Address
  • Inet6Address
  • IDN
  • HttpURLConnection
  • HttpCookie
  • NetPermission
  • NetworkInterface
  • PasswordAuthentication
  • Proxy
  • ProxySelector
  • ResponseCache
  • SecureCacheResponse
  • ServerSocket
  • Socket
  • SocketAddress
  • SocketImpl
  • SocketPermission
  • StandardSocketOptions
  • URI
  • URL
  • URLClassLoader
  • URLConnection
  • URLDecoder
  • URLEncoder
  • URLStreamHandler

Pemrograman Socket di Java

Pemrograman Java Socket digunakan untuk komunikasi antara aplikasi yang berjalan pada JRE yang berbeda.Pemrograman Java Socket dapat berorientasi koneksi atau tanpa koneksi.Kelas Socket dan ServerSocket digunakan untuk pemrograman soket berorientasi koneksi dan kelas DatagramSocket dan DatagramPacket digunakan untuk pemrograman soket tanpa koneksi.

Soket menyediakan mekanisme komunikasi antara dua komputer menggunakan TCP. Program klien membuat soket di ujung komunikasi dan mencoba menghubungkan soket itu ke server.

Ketika koneksi dibuat, server membuat objek soket di ujung komunikasi. Klien dan server sekarang dapat berkomunikasi dengan menulis ke dan membaca dari soket.

Kelas java.net.Socket mewakili soket, dan kelas java.net.ServerSocket menyediakan mekanisme untuk program server untuk mendengarkan klien dan membuat koneksi dengan mereka.

Langkah-langkah berikut ini terjadi saat membuat sambungan TCP antara dua komputer menggunakan soket

  • Server membuat instance objek ServerSocket, yang menunjukkan komunikasi nomor port mana yang akan dilakukan.
  • Server memanggil metode accept () dari kelas ServerSocket. Metode ini menunggu hingga klien terhubung ke server pada port yang diberikan.
  • Setelah server menunggu, klien membuat instance objek Socket, menentukan nama server dan nomor port yang akan disambungkan.
  • Konstruktor kelas Socket mencoba untuk menghubungkan klien ke server yang ditentukan dan nomor port. Jika komunikasi dibuat, klien sekarang memiliki objek Socket yang mampu berkomunikasi dengan server.
  • Di sisi server, metode accept () mengembalikan referensi ke soket baru di server yang terhubung ke soket klien.

Setelah koneksi dibuat, komunikasi dapat terjadi menggunakan aliran I / O. Setiap soket memiliki OutputStream dan InputStream. OutputStream klien terhubung ke InputStream server, dan InputStream klien terhubung ke OutputStream server.

TCP adalah protokol komunikasi dua arah, sehingga data dapat dikirim melalui kedua aliran pada waktu yang bersamaan. Berikut ini adalah kelas berguna yang menyediakan set lengkap metode untuk mengimplementasikan soket.

Klien dalam pemrograman soket harus mengetahui dua informasi:

  1. IP Address dari Server, dan
  2. Port number.

Di sini, kita akan membuat komunikasi klien dan server satu arah. Dalam aplikasi ini, klien mengirim pesan ke server, server membaca pesan dan mencetaknya. Di sini, dua kelas digunakan: Socket dan ServerSocket. Kelas Socket digunakan untuk mengkomunikasikan klien dan server. Melalui kelas ini, kita dapat membaca dan menulis pesan. Kelas ServerSocket digunakan di sisi server. Metode accept () dari kelas ServerSocket memblokir konsol hingga klien tersambung. Setelah koneksi klien berhasil, ia mengembalikan contoh Socket di sisi server.

Kelas Socket

Soket hanyalah titik akhir untuk komunikasi antar mesin. Kelas Socket dapat digunakan untuk membuat socket. Kelas java.net.Socket mewakili soket yang digunakan klien dan server untuk berkomunikasi satu sama lain. Klien memperoleh objek Socket dengan membuat instance, sedangkan server memperoleh objek Socket dari nilai kembalian metode accept ().

Metode yang penting pada socket yaitu

  1. public InputStream getInputStream () mengembalikan InputStream yang terpasang dengan soket ini.
  2. publik OutputStream getOutputStream () mengembalikan OutputStream yang terpasang dengan soket ini.
  3. public disinkronkan void close () menutup soket ini.

Ketika konstruktor Socket kembali, itu tidak hanya memberi contoh objek Socket tetapi sebenarnya mencoba untuk terhubung ke server dan port yang ditentukan. Beberapa metode yang menarik di kelas Socket tercantum di sini. Perhatikan bahwa klien dan server memiliki objek Socket, sehingga metode ini dapat dipanggil oleh klien dan server.

Kelas ServerSocket

Kelas ServerSocket dapat digunakan untuk membuat soket server. Objek ini digunakan untuk menjalin komunikasi dengan klien. Jika konstruktor ServerSocket tidak menampilkan pengecualian, itu berarti aplikasi Anda telah berhasil terikat ke port yang ditentukan dan siap untuk permintaan klien. Metode yang penting pada ServerSocket yaitu

  1. public Socket accept () mengembalikan soket dan membuat koneksi antara server dan klien.
  2. public disinkronkan void close () menutup soket server.

Ketika ServerSocket memanggil accept (), metode tidak kembali sampai klien terhubung. Setelah klien tersambung, ServerSocket membuat Socket baru di port yang tidak ditentukan dan mengembalikan referensi ke Socket baru ini. Koneksi TCP sekarang ada antara klien dan server, dan komunikasi dapat dimulai.

Contoh Pemrograman Socket di Java

Membuat Server

Untuk membuat aplikasi server, kita perlu membuat instance kelas ServerSocket. Di sini, kami menggunakan nomor port 6666 untuk komunikasi antara klien dan server. Anda juga dapat memilih nomor port lain. Metode accept () menunggu klien. Jika klien terhubung dengan nomor port yang diberikan, itu mengembalikan contoh Socket. Sintaksnya dapat dibuat dengan cara berikut

ServerSocket ss=new ServerSocket(6666);  
Socket s=ss.accept();//establishes connection and waits for the client  

Membuat Client

Untuk membuat aplikasi klien, kita perlu membuat instance kelas Socket. Di sini, kita perlu memasukkan alamat IP atau nama host dari Server dan nomor port. Di sini, kami menggunakan “localhost” karena server kami berjalan di sistem yang sama. Sintaksnya dapat dibuat dengan cara berikut

Socket s=new Socket("localhost",6666);  

Mari kita lihat pemrograman soket Java sederhana di mana klien mengirim teks dan server menerima dan mencetaknya.

Mari kita buat contoh sederhananya dengan membuat file server dengan nama MyServer.java

import java.io.*;  
import java.net.*;  
public class MyServer {  
public static void main(String[] args){  
try{  
ServerSocket ss=new ServerSocket(6666);  
Socket s=ss.accept();//establishes connection   
DataInputStream dis=new DataInputStream(s.getInputStream());  
String  str=(String)dis.readUTF();  
System.out.println("message= "+str);  
ss.close();  
}catch(Exception e){System.out.println(e);}  
}  
}  

Mari kita buat contoh sederhananya dengan membuat file client dengan nama MyClient.java

import java.io.*;  
import java.net.*;  
public class MyClient {  
public static void main(String[] args) {  
try{      
Socket s=new Socket("localhost",6666);  
DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
dout.writeUTF("Hello Server");  
dout.flush();  
dout.close();  
s.close();  
}catch(Exception e){System.out.println(e);}  
}  
}  

Untuk menjalankan program ini, buka dua command prompt dan jalankan setiap program pada setiap command prompt seperti yang ditampilkan pada gambar di bawah ini. Setelah menjalankan aplikasi klien, sebuah pesan akan ditampilkan di konsol server.

Contoh lainnya kita juga dapat membuat Socket Server dan Socket Client dengan menuliskan kode berikut ini

Mari kita buat contoh sederhananya dengan membuat file server dengan nama GreetingClient.java. GreetingClient berikut adalah program klien yang terhubung ke server dengan menggunakan soket dan mengirim salam, dan kemudian menunggu tanggapan.

// File Name GreetingClient.java
import java.net.*;
import java.io.*;

public class GreetingClient {

   public static void main(String [] args) {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try {
         System.out.println("Connecting to " + serverName + " on port " + port);
         Socket client = new Socket(serverName, port);
         
         System.out.println("Just connected to " + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         
         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         
         System.out.println("Server says " + in.readUTF());
         client.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Mari kita buat contoh sederhananya dengan membuat file server dengan nama GreetingServer.java. Program GreetingServer berikut adalah contoh aplikasi server yang menggunakan kelas Socket untuk mendengarkan klien pada nomor port yang ditentukan oleh argumen baris perintah

// File Name GreetingServer.java
import java.net.*;
import java.io.*;

public class GreetingServer extends Thread {
   private ServerSocket serverSocket;
   
   public GreetingServer(int port) throws IOException {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run() {
      while(true) {
         try {
            System.out.println("Waiting for client on port " + 
               serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            
            System.out.println("Just connected to " + server.getRemoteSocketAddress());
            DataInputStream in = new DataInputStream(server.getInputStream());
            
            System.out.println(in.readUTF());
            DataOutputStream out = new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress()
               + "\nGoodbye!");
            server.close();
            
         } catch (SocketTimeoutException s) {
            System.out.println("Socket timed out!");
            break;
         } catch (IOException e) {
            e.printStackTrace();
            break;
         }
      }
   }
   
   public static void main(String [] args) {
      int port = Integer.parseInt(args[0]);
      try {
         Thread t = new GreetingServer(port);
         t.start();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Kompilasi klien dan server dan kemudian mulai server sebagai berikut dan akan menghasilkan

$ java GreetingServer 6066
Waiting for client on port 6066...

Periksa program klien sebagai berikut

$ java GreetingClient localhost 6066
Connecting to localhost on port 6066
Just connected to localhost/127.0.0.1:6066
Server says Thank you for connecting to /127.0.0.1:6066
Goodbye!

Contoh Pemrograman Socket di Java (Read-Write both side)

Dalam contoh ini, klien akan menulis terlebih dahulu ke server kemudian server akan menerima dan mencetak teks tersebut. Kemudian server akan menulis ke klien dan klien akan menerima dan mencetak teks tersebut. Langkahnya terus berjalan.

Mari kita buat contoh sederhananya dengan membuat file server dengan nama MyServer.java

import java.net.*;  
import java.io.*;  
class MyServer{  
public static void main(String args[])throws Exception{  
ServerSocket ss=new ServerSocket(3333);  
Socket s=ss.accept();  
DataInputStream din=new DataInputStream(s.getInputStream());
DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
String str="",str2="";  
while(!str.equals("stop")){  
str=din.readUTF();  
System.out.println("client says: "+str);  
str2=br.readLine();  
dout.writeUTF(str2);  
dout.flush();  
}  
din.close();  
s.close();  
ss.close();  
}
}  

Mari kita buat contoh sederhananya dengan membuat file client dengan nama MyClient.java

import java.net.*;  
import java.io.*;  
class MyClient{  
public static void main(String args[])throws Exception{  
Socket s=new Socket("localhost",3333);  
DataInputStream din=new DataInputStream(s.getInputStream());  
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  
  
String str="",str2="";  
while(!str.equals("stop")){  
str=br.readLine();  
dout.writeUTF(str);  
dout.flush();  
str2=din.readUTF();  
System.out.println("Server says: "+str2);  
}  
  
dout.close();  
s.close();  
}
}

URL di Java

Kelas URL Java mewakili URL. URL adalah singkatan dari Uniform Resource Locator. Ini menunjuk ke sumber daya di World Wide Web. Sebagai contohnya yaitu

https://dosenit.com/

Sebuah URL berisi banyak informasi yaitu bisa kita sebutkan seperti

  1. Protocol yaitu Dalam hal ini, http adalah protokolnya.
  2. Server name atau IP Address yaitu Dalam hal ini https://dosenit.com/ adalah nama server.
  3. Port Number yaitu Ini adalah atribut opsional. Jika kita menulis https://dosenit.com:8080/, 8080 disini adalah nomor port. Jika nomor port tidak disebutkan di URL, itu mengembalikan -1.
  4. File Name atau directory name yaitu Dalam hal ini, index.jsp adalah nama file.

Constructor di Kelas URL Java

Kelas java.net.URL mewakili URL dan memiliki sekumpulan metode lengkap untuk memanipulasi URL di Java. Kelas URL berisi banyak metode untuk mengakses berbagai bagian URL yang diwakili. Kelas URL memiliki beberapa konstruktor untuk membuat URL, termasuk yang berikut ini

  • URL(String spec) yaitu Membuat sebuah instance dari URL dari representasi String.
  • URL(String protocol, String host, int port, String file) yaitu Membuat instance URL dari protokol, host, nomor port, dan file yang diberikan.
  • URL(String protocol, String host, int port, String file, URLStreamHandler handler) yaitu Membuat instance URL dari protokol, host, nomor port, file, dan penangan yang diberikan.
  • URL(String protocol, String host, String file) yaitu Membuat instance URL dari nama protokol, nama host, dan nama file yang diberikan.
  • URL(URL context, String spec) yaitu Membuat sebuah instance dari URL dengan mengurai spesifikasi yang diberikan dalam konteks yang ditentukan.
  • URL(URL context, String spec, URLStreamHandler handler) yaitu Membuat sebuah instance dari URL dengan mengurai spesifikasi yang diberikan dengan penangan yang ditentukan dalam konteks yang diberikan.

Metode Umum yang Sering Digunakan pada URL Java

Kelas java.net.URL menyediakan banyak metode. Metode penting dari kelas URL diberikan di bawah ini

  • public String getProtocol () mengembalikan protokol URL.
  • public String getHost () mengembalikan nama host dari URL.
  • public String getPort () mengembalikan Nomor Port dari URL.
  • public String getFile () mengembalikan nama file dari URL.
  • public String getAuthority () mengembalikan otoritas URL.
  • public String toString () mengembalikan representasi string dari URL.
  • public String getQuery () mengembalikan string kueri dari URL.
  • public String getDefaultPort () mengembalikan port default dari URL.
  • public URLConnection openConnection () mengembalikan contoh URLConnection yaitu terkait dengan URL ini.
  • public boolean sama dengan (Object obj) itu membandingkan URL dengan objek yang diberikan.
  • public Object getContent () mengembalikan konten dari URL.
  • public String getRef () mengembalikan jangkar atau referensi dari URL.
  • public URI toURI () mengembalikan URI dari URL.

Contoh dalam penggunaan Kelas URL di java dapat kita buat dengan contoh kode berikut

//URLDemo.java  
import java.net.*;  
public class URLDemo{  
public static void main(String[] args){  
try{  
URL url=new URL("http://www.dosenit.com/java-tutorial");  
  
System.out.println("Protocol: "+url.getProtocol());  
System.out.println("Host Name: "+url.getHost());  
System.out.println("Port Number: "+url.getPort());  
System.out.println("File Name: "+url.getFile());  
  
}catch(Exception e){System.out.println(e);}  
}  
} 

Kemudian akan menghasilkan output berikut ini

Protocol: http
Host Name: www.dosenit.com
Port Number: -1
File Name: /java-tutorial

Atau kita dapat juga membuat contoh lainnya seperti kode berikut

//URLDemo.java  
import java.net.*;    
public class URLDemo{    
public static void main(String[] args){    
try{    
URL url=new URL("https://www.google.com/search?q=dosenit&oq=dosenit&sourceid=chrome&ie=UTF-8");    
    
System.out.println("Protocol: "+url.getProtocol());    
System.out.println("Host Name: "+url.getHost());    
System.out.println("Port Number: "+url.getPort());    
System.out.println("Default Port Number: "+url.getDefaultPort());    
System.out.println("Query String: "+url.getQuery());    
System.out.println("Path: "+url.getPath());    
System.out.println("File: "+url.getFile());    
  
}catch(Exception e){System.out.println(e);}    
}    
}    

Kemudian akan menghasilkan output berikut ini

Protocol: https
Host Name: www.google.com
Port Number: -1
Default Port Number: 443
Query String: q=dosenit&oq=dosenit&sourceid=chrome&ie=UTF-8
Path: /search
File: /search?q=dosenit&oq=dosenit&sourceid=chrome&ie=UTF-8

Kelas URLConnection di Java

Kelas Java URLConnection merepresentasikan hubungan komunikasi antara URL dan aplikasi. Kelas ini dapat digunakan untuk membaca dan menulis data ke sumber daya tertentu yang dirujuk oleh URL. Metode openConnection () mengembalikan java.net.URLConnection, kelas abstrak yang subkelasnya mewakili berbagai jenis sambungan URL. Misalnya dengan contoh berikut ini

  • Jika Anda tersambung ke URL yang protokolnya adalah HTTP, metode openConnection () mengembalikan objek HttpURLConnection.
  • Jika Anda terhubung ke URL yang mewakili file JAR, metode openConnection () mengembalikan objek JarURLConnection, dan lainnya.

Cara mendapatkan objek kelas URLConnection adalah dengan Metode openConnection () dari kelas URL mengembalikan objek kelas URLConnection. Kemudian dapat kita buat sintaksnya dengan sintaks berikut ini

public URLConnection openConnection()throws IOException{}  

Menampilkan kode sumber halaman web dengan kelas URLConnecton yaitu Kelas URLConnection menyediakan banyak metode, kita dapat menampilkan semua data halaman web dengan menggunakan metode getInputStream (). Metode getInputStream () mengembalikan semua data dari URL yang ditentukan dalam aliran yang dapat dibaca dan ditampilkan.

Contoh dalam penggunaan Kelas URLConnection di java dapat kita buat dengan contoh kode berikut

import java.io.*;  
import java.net.*;  
public class URLConnectionExample {  
public static void main(String[] args){  
try{  
URL url=new URL("http://www.dosenit.com/java-tutorial");  
URLConnection urlcon=url.openConnection();  
InputStream stream=urlcon.getInputStream();  
int i;  
while((i=stream.read())!=-1){  
System.out.print((char)i);  
}  
}catch(Exception e){System.out.println(e);}  
}  
} 

Contoh lain yang bisa kita buat adalah dengan membuat kode berikut. Program URLConnectionDemo berikut menyambung ke URL yang dimasukkan dari baris perintah. Jika URL mewakili sumber daya HTTP, koneksi dilemparkan ke HttpURLConnection, dan data dalam sumber daya dibaca satu baris dalam satu waktu.

// File Name : URLConnDemo.java
import java.net.*;
import java.io.*;

public class URLConnDemo {

   public static void main(String [] args) {
      try {
         URL url = new URL("https://www.dosenit.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection) {
            connection = (HttpURLConnection) urlConnection;
         }else {
            System.out.println("Please enter an HTTP URL.");
            return;
         }
         
         BufferedReader in = new BufferedReader(
            new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;
         
         while((current = in.readLine()) != null) {
            urlString += current;
         }
         System.out.println(urlString);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Maka akan menghasilkan output seperti ini

$ java URLConnDemo

.....a complete HTML content of home page of dosenit.com.....

Kelas HttpURLConnection di Java

Kelas HttpURLConnection Java adalah URLConnection khusus http. Ini berfungsi hanya untuk protokol HTTP. Dengan bantuan kelas HttpURLConnection, Anda dapat memperoleh informasi dari URL HTTP seperti informasi header, kode status, kode respons, dan lainnya. Java.net.HttpURLConnection adalah subkelas dari kelas URLConnection.

Cara mendapatkan objek kelas HttpURLConnection yaitu dengan Metode openConnection () dari kelas URL mengembalikan objek kelas URLConnection. Kemudian dapat kita buat sintaksnya dengan sintaks berikut ini

public URLConnection openConnection()throws IOException{}  

Anda dapat mengetikkannya ke tipe HttpURLConnection seperti yang diberikan di bawah ini

URL url=new URL("http://www.dosenit.com/java-tutorial");    
HttpURLConnection huc=(HttpURLConnection)url.openConnection();  

Contoh dalam penggunaan Kelas HttpURLConnection di java dapat kita buat dengan contoh kode berikut

import java.io.*;    
import java.net.*;    
public class HttpURLConnectionDemo{    
public static void main(String[] args){    
try{    
URL url=new URL("http://www.dosenit.com/java-tutorial");    
HttpURLConnection huc=(HttpURLConnection)url.openConnection();  
for(int i=1;i<=8;i++){  
System.out.println(huc.getHeaderFieldKey(i)+" = "+huc.getHeaderField(i));
                      }  
huc.disconnect();   
}catch(Exception e){System.out.println(e);}    
}    
}    

Kemudian akan menghasilkan output berikut ini

Date = Mon, 19 Oct 2020 19:31:14 GMT
Set-Cookie = JSESSIONID=D70B87DBB832820CACA5998C90939D48; Path=/
Content-Type = text/html
Cache-Control = max-age=2592000
Expires = Fri, 19 Nov 2021 19:31:14 GMT
Vary = Accept-Encoding,User-Agent
Connection = close
Transfer-Encoding = chunked

Kelas InetAddress di Java

Kelas Java InetAddress mewakili alamat IP. Kelas java.net.InetAddress menyediakan metode untuk mendapatkan IP dari nama host apa pun, misalnya www.dosenit.com, www.google.com, www.facebook.com, dan lainnya. Kelas ini mewakili alamat Internet Protocol (IP).

Alamat IP diwakili oleh nomor 32-bit atau 128-bit unsigned. Sebuah contoh dari InetAddress mewakili alamat IP dengan nama host yang sesuai. Ada dua jenis tipe alamat: Unicast dan Multicast. Unicast adalah pengenal untuk satu antarmuka sedangkan Multicast adalah pengenal untuk satu set antarmuka. Selain itu, InetAddress memiliki mekanisme cache untuk menyimpan resolusi nama host yang berhasil dan tidak berhasil. Metode kelas InetAddress yang umum digunakan yaitu

  1. public static InetAddress getByName(String host) throws UnknownHostException yaitu itu mengembalikan instance InetAddress yang berisi IP dan nama LocalHost.
  2. public static InetAddress getLocalHost() throws UnknownHostException yaitu itu mengembalikan instance InetAdddress yang berisi nama dan alamat host lokal.
  3. public String getHostName() yaitu itu mengembalikan nama host dari alamat IP.
  4. public String getHostAddress() yaitu tu mengembalikan alamat IP dalam format string.

Contoh dalam penggunaan Kelas InetAddress di java dapat kita buat dengan contoh kode berikut

import java.io.*;  
import java.net.*;  
public class InetDemo{  
public static void main(String[] args){  
try{  
InetAddress ip=InetAddress.getByName("www.dosenit.com");  
  
System.out.println("Host Name: "+ip.getHostName());  
System.out.println("IP Address: "+ip.getHostAddress());  
}catch(Exception e){System.out.println(e);}  
}  
}  

Kemudian akan menghasilkan output berikut ini

Host Name: www.dosenit.com
IP Address: 192.168.1.199

DatagramSocket dan DatagramPakcet di Java

Kelas Java DatagramSocket dan DatagramPacket digunakan untuk pemrograman soket tanpa koneksi.

Kelas DatagramSocket di Java

Kelas Java DatagramSocket mewakili soket tanpa koneksi untuk mengirim dan menerima paket datagram. Datagram pada dasarnya adalah informasi tetapi tidak ada jaminan konten, waktu kedatangan atau waktu kedatangannya.

Konstruktor kelas DatagramSocket yang umum digunakan yaitu

  1. DatagramSocket() throws SocketEeption yaitu ini membuat soket datagram dan mengikatnya dengan Nomor Port yang tersedia di mesin localhost.
  2. DatagramSocket(int port) throws SocketEeption yaitu ini membuat soket datagram dan mengikatnya dengan Nomor Port yang diberikan.
  3. DatagramSocket(int port, InetAddress address) throws SocketEeption yaitu ini membuat soket datagram dan mengikatnya dengan nomor port dan alamat host yang ditentukan

Kelas DatagramPacket di Java

Java DatagramPacket adalah pesan yang dapat dikirim atau diterima. Jika Anda mengirim lebih dari satu paket, paket mungkin datang dalam urutan apa pun. Selain itu, pengiriman paket tidak dijamin. Konstruktor kelas DatagramPacket yang umum digunakan yaitu

  1. DatagramPacket(byte[] barr, int length) yaitu itu membuat paket datagram. Konstruktor ini digunakan untuk menerima paket.
  2. DatagramPacket(byte[] barr, int length, InetAddress address, int port) yaitu ini membuat paket datagram. Konstruktor ini digunakan untuk mengirim paket.

Contoh dalam penggunaan Sending DatagramPacket oleh DatagramSocket di java dapat kita buat dengan contoh kode berikut

//DSender.java  
import java.net.*;  
public class DSender{  
  public static void main(String[] args) throws Exception {  
    DatagramSocket ds = new DatagramSocket();  
    String str = "Welcome to My Tutorial";  
    InetAddress ip = InetAddress.getByName("127.0.0.1");  
     
    DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), ip, 3000);
  ds.send(dp);  
    ds.close();  
  }  
}  

Contoh dalam penggunaan Receiving DatagramPacket oleh DatagramSocket di java dapat kita buat dengan contoh kode berikut

//DReceiver.java  
import java.net.*;  
public class DReceiver{  
  public static void main(String[] args) throws Exception {  
    DatagramSocket ds = new DatagramSocket(3000);  
    byte[] buf = new byte[1024];  
    DatagramPacket dp = new DatagramPacket(buf, 1024);  
    ds.receive(dp);  
    String str = new String(dp.getData(), 0, dp.getLength());  
    System.out.println(str);  
    ds.close();  
  }  
}  

You may also like