Feedback Form

Client Server Technology in Java: Socket Programming Guide

Client Server Technology in Java: Socket Programming Guide

Client Server Technology क्या है?

Client Server Technology एक ऐसा communication model है जिसमें दो entities होती हैं — Client और Server। Client वह system होता है जो request भेजता है, और Server वह system होता है जो उस request को process करके response देता है। यह concept पूरे network communication का base है।

उदाहरण के लिए, जब आप किसी browser में www.google.com type करते हैं, तो आपका browser Client की तरह काम करता है और Google का server उस request को handle करता है — यही Client Server Architecture कहलाता है।

Client Server Model कैसे काम करता है?

Client और Server के बीच communication एक specific protocol के द्वारा होता है, जैसे TCP/IP (Transmission Control Protocol / Internet Protocol)

  • Client: request भेजता है (जैसे data मांगना, file access करना आदि)।
  • Server: उस request को receive करता है और proper response भेजता है।

Communication को establish करने के लिए Socket Programming का use किया जाता है जो Java में बहुत popular है।

Socket Programming in Java क्या है?

Socket Programming एक तरीका है जिससे हम network में दो computers को connect करके data transfer कर सकते हैं। Java में socket programming java.net package के अंदर available classes की मदद से की जाती है।

Socket एक endpoint की तरह काम करता है जो client और server के बीच communication establish करता है। जब client और server एक ही network में हों, तो वे socket के माध्यम से data send और receive कर सकते हैं।

Sockets के Types

Java में मुख्य रूप से दो तरह के sockets होते हैं:

  • Stream Sockets (TCP): ये reliable communication provide करते हैं। Data एक continuous stream में भेजा जाता है।
  • Datagram Sockets (UDP): ये fast लेकिन unreliable होते हैं क्योंकि ये packet loss को check नहीं करते।

Socket Programming में उपयोग की जाने वाली मुख्य Classes

Java में Socket Programming के लिए कुछ important classes होती हैं जो java.net package में available हैं:

Class Name Use / Description
ServerSocket Server-side socket को create करने के लिए। यह client request को accept करता है।
Socket Client-side socket को create करने के लिए। यह server से connect करता है।
InetAddress IP address और host name को handle करने के लिए।
DataInputStream / DataOutputStream Input और Output data streams को manage करने के लिए।

Socket Architecture कैसे काम करता है?

Socket architecture को समझने के लिए एक simple example लेते हैं। जब client connect होता है:

  • Server पहले एक ServerSocket create करता है और एक specific port पर listen करता है।
  • Client एक Socket create करके उस port पर connect होता है।
  • Connection establish होने के बाद input और output streams के ज़रिए data exchange होता है।
  • Communication पूरा होने के बाद दोनों sockets close कर दिए जाते हैं।

TCP Socket Programming Example

Server Side Code

import java.io.*;
import java.net.*;

public class Server {
  public static void main(String[] args) {
    try {
      ServerSocket serverSocket = new ServerSocket(5000);
      System.out.println("Server is waiting for client...");
      Socket socket = serverSocket.accept();
      System.out.println("Client connected!");

      DataInputStream dis = new DataInputStream(socket.getInputStream());
      String message = dis.readUTF();
      System.out.println("Message from client: " + message);

      dis.close();
      socket.close();
      serverSocket.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Client Side Code

import java.io.*;
import java.net.*;

public class Client {
  public static void main(String[] args) {
    try {
      Socket socket = new Socket("localhost", 5000);
      DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
      dos.writeUTF("Hello Server!");

      dos.close();
      socket.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

ऊपर दिए गए example में, Server पहले port 5000 पर listen करता है। जब client connect होता है, तो दोनों एक दूसरे से data exchange करते हैं।

Ports और Protocols

हर Server एक specific port number पर listen करता है। उदाहरण के लिए, HTTP का default port 80 होता है और HTTPS का 443। Socket Programming में आप कोई भी free port use कर सकते हैं जैसे 5000 या 8080।

Communication के लिए सबसे common protocols हैं:

  • TCP (Transmission Control Protocol): Reliable और ordered communication देता है।
  • UDP (User Datagram Protocol): Fast लेकिन unreliable communication।

TCP vs UDP

Factor TCP UDP
Reliability Reliable Unreliable
Connection Connection-oriented Connectionless
Speed Slower Faster
Use Case Web, Email Video Streaming, Gaming

Socket Programming के Advantages

  • Real-time communication possible होता है।
  • Data transfer fast और efficient होता है।
  • Multiple clients को handle करना आसान होता है।
  • Cross-platform communication possible होता है।

Socket Programming की Limitations

  • Security issues हो सकते हैं अगर encryption ना किया जाए।
  • Error handling complex हो सकता है।
  • Network failure से communication break हो सकता है।

Socket Programming के Real-life Applications

  • Chat Applications जैसे WhatsApp, Messenger।
  • Online Multiplayer Games जैसे PUBG या Counter-Strike।
  • File Transfer Applications जैसे FTP।
  • Streaming Services जैसे Netflix या YouTube।

Exam Specific Notes

  • Definition: Socket Programming Java में client और server के बीच communication establish करने की technique है।
  • Important Classes: ServerSocket, Socket, DataInputStream, DataOutputStream।
  • Default Ports: HTTP (80), HTTPS (443), FTP (21)।
  • Protocols: TCP (reliable) और UDP (fast)।
  • Key Functions: accept(), connect(), getInputStream(), getOutputStream()
  • Use Cases: Chatting apps, file sharing, online gaming।

Key Takeaways for Students

  • Java में Socket Programming सबसे important topic है network communication के लिए।
  • Exam में अक्सर TCP और UDP based examples पूछे जाते हैं।
  • Code के साथ साथ architecture diagram भी याद रखना चाहिए।
  • Practically run करके समझना सबसे effective तरीका है।