Introduction to Java Networking API: java.net Package Overview
Introduction to Java Networking API: java.net Package Overview
Java Networking API, यानी java.net package, Java language का एक powerful हिस्सा है जो networking applications बनाने के लिए use किया जाता है। इस package के अंदर कई classes और interfaces होते हैं जो computers के बीच communication establish करने में help करते हैं — जैसे data transfer, connection establishment, sockets, URLs, और IP addressing।
अगर आप Java programming सीख रहे हैं या computer network subject पढ़ रहे हैं, तो java.net package को समझना बहुत ज़रूरी है क्योंकि यही base है internet-based Java applications का। अब चलिए step by step इस पूरे package को detail में समझते हैं।
What is Java Networking?
Java Networking का मतलब है — दो या उससे ज़्यादा devices के बीच data exchange करना Java programs के through। इस process में data को packets में तोड़कर send और receive किया जाता है। Java की Networking API यानी java.net package इस process को आसान बनाता है।
Networking में mainly दो types के connections होते हैं — connection-oriented और connectionless। Java दोनों को support करता है, TCP और UDP protocols के ज़रिए।
- TCP (Transmission Control Protocol): यह reliable connection बनाता है जहाँ data loss नहीं होता।
- UDP (User Datagram Protocol): यह fast communication provide करता है लेकिन data delivery की guarantee नहीं होती।
java.net Package Overview
java.net package में वो सारे tools और classes होते हैं जो internet communication के लिए ज़रूरी हैं। यह package Java application और network के बीच communication establish करने के लिए bridge का काम करता है।
Major Classes in java.net Package
यहाँ हम java.net package की कुछ main classes के बारे में detail में बात करेंगे, जो exam point of view से बहुत important हैं।
| Class Name | Description |
|---|---|
| InetAddress | यह class IP address और hostname के बीच mapping provide करती है। |
| URL | यह class Uniform Resource Locator को represent करती है — यानी किसी web resource का address। |
| URLConnection | यह URL के साथ connection establish करने के लिए use होती है। |
| Socket | यह class TCP connection बनाने के लिए use होती है — यानी client-server communication। |
| ServerSocket | यह class server side पर incoming client requests को accept करने के लिए use होती है। |
| DatagramSocket | यह UDP-based communication के लिए use होती है जहाँ connectionless data transfer होता है। |
| DatagramPacket | यह class data packets को represent करती है जो UDP में भेजे या receive किए जाते हैं। |
InetAddress Class
InetAddress class network communication में सबसे basic role निभाती है। यह किसी host (जैसे “www.google.com”) का IP address जानने में मदद करती है। इसका उपयोग hostname से IP address निकालने या IP से hostname पता करने में होता है।
Common Methods of InetAddress
- getLocalHost() – current machine का IP address return करता है।
- getByName(String host) – दिए गए hostname से IP address return करता है।
- getHostName() – InetAddress object से hostname देता है।
- getHostAddress() – InetAddress object से IP address देता है।
Example:
import java.net.*;
public class IPExample {
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getByName("www.google.com");
System.out.println("Host Name: " + address.getHostName());
System.out.println("IP Address: " + address.getHostAddress());
}
}
URL and URLConnection Classes
URL (Uniform Resource Locator) एक web resource का unique address होता है। Java में URL class web-based data access करने में मदद करती है। और URLConnection class actual connection establish करती है जिससे data send/receive किया जा सके।
Example of URL and URLConnection
import java.net.*;
import java.io.*;
public class URLExample {
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.example.com");
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
Socket and ServerSocket Classes
TCP communication के लिए Java में Socket और ServerSocket classes का use होता है। Socket client side connection बनाता है, जबकि ServerSocket server side पर request accept करता है।
How TCP Communication Works:
- Server पहले ServerSocket create करता है और किसी port पर listen करता है।
- Client Socket object बनाकर उसी port से connect करता है।
- Connection बनने के बाद data InputStream और OutputStream के ज़रिए transfer होता है।
Example: Simple Client and Server
Server Code:
import java.net.*;
import java.io.*;
public class ServerDemo {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF();
System.out.println("Message from client: " + str);
ss.close();
}
}
Client Code:
import java.net.*;
import java.io.*;
public class ClientDemo {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost", 9999);
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF("Hello Server!");
dos.close();
s.close();
}
}
DatagramSocket and DatagramPacket Classes
जब हमें fast communication चाहिए और reliability उतनी जरूरी नहीं है, तब हम UDP protocol का use करते हैं। Java में UDP communication के लिए DatagramSocket और DatagramPacket classes होती हैं।
- DatagramPacket: data को packets में represent करता है।
- DatagramSocket: इन packets को send और receive करने का काम करता है।
Example:
import java.net.*;
public class UDPSender {
public static void main(String[] args) throws Exception {
DatagramSocket ds = new DatagramSocket();
String str = "Hello UDP!";
InetAddress ip = InetAddress.getByName("localhost");
DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), ip, 3000);
ds.send(dp);
ds.close();
}
}
Networking in Real World Applications
Java networking का use सिर्फ learning purpose के लिए नहीं बल्कि real-world applications में भी किया जाता है जैसे:
- Online chat systems
- File sharing applications
- Remote method invocation (RMI)
- Web crawlers और search engines
- IoT devices के बीच communication
Advantages of Java Networking
- Platform Independence: Java networking किसी भी OS पर run हो सकता है।
- Simple API: java.net package easy और developer-friendly है।
- Reliable Communication: TCP protocol से secure और consistent data transfer होता है।
- Fast Data Transfer: UDP protocol lightweight communication देता है।
- Built-in Classes: हर function के लिए predefined classes available हैं।
Important Points for Exams
- Java networking का main package — java.net।
- TCP के लिए Socket और ServerSocket use होते हैं।
- UDP के लिए DatagramSocket और DatagramPacket use होते हैं।
- InetAddress से IP और hostname resolve किए जाते हैं।
- URL और URLConnection web-based communication के लिए हैं।
Quick Summary Table
| Protocol | Class | Connection Type |
|---|---|---|
| TCP | Socket, ServerSocket | Connection-oriented |
| UDP | DatagramSocket, DatagramPacket | Connectionless |
Exam Notes (Short Notes)
- Java Networking: Java में data transfer का process है जो TCP और UDP protocols पर आधारित है।
- java.net package: Networking के लिए सभी classes contain करता है।
- InetAddress: IP और hostname mapping के लिए।
- Socket: TCP client side connection के लिए।
- ServerSocket: TCP server side listener के लिए।
- DatagramSocket: UDP connectionless communication के लिए।
- DatagramPacket: UDP packet representation के लिए।
- URL: किसी resource का address define करता है।
- URLConnection: resource के साथ connection establish करता है।