Creating TCP Clients with Socket: Request-Response Communication Patterns
Creating TCP Clients with Socket: Request-Response Communication Patterns
TCP Client क्या होता है?
TCP Client एक ऐसा program होता है जो किसी remote server से connect होकर data भेजता या प्राप्त करता है। यह TCP (Transmission Control Protocol) का use करता है ताकि data reliable और ordered तरीके से transfer हो सके। Client हमेशा communication की शुरुआत करता है जबकि Server उसकी request को handle करता है।
Simple words में समझें तो TCP Client वो हिस्सा है जो server को request भेजता है और फिर server के response को receive करता है। जैसे आप browser से किसी website को खोलते हैं, वहाँ browser TCP client की तरह काम करता है और website server की तरह।
TCP Client कैसे काम करता है?
TCP Client का working pattern तीन basic steps में होता है:
- 1. Connection Establishment: Client सबसे पहले server के IP address और port number से connect होता है।
- 2. Data Transmission: Connection establish होने के बाद client data भेजता है और server से response प्राप्त करता है।
- 3. Connection Termination: जब communication complete हो जाता है, तो client connection बंद कर देता है।
Socket क्या होता है?
Socket एक endpoint होता है जो TCP connection के लिए use होता है। यह network communication के लिए client और server के बीच bridge की तरह काम करता है।
हर socket दो चीजों से define होता है: IP address और Port number। Client socket और server socket आपस में connect होकर data exchange करते हैं।
Socket की मुख्य Responsibilities
- Connection establish करना
- Data send और receive करना
- Communication close करना
Request-Response Communication Pattern क्या है?
Request-Response एक common communication pattern है जो client-server architecture में use होता है। इस pattern में client server को request भेजता है और server उस request का response वापस भेजता है।
यह pattern synchronous होता है यानी जब तक client को server से response नहीं मिलता, वह अगली request नहीं भेजता।
Request-Response Pattern का Flow
- Client request generate करता है।
- Server उस request को process करता है।
- Server response वापस client को भेजता है।
Example Flow Diagram:
| Step | Action | Direction |
|---|---|---|
| 1 | Client sends request to Server | → |
| 2 | Server processes request | - |
| 3 | Server sends response back to Client | ← |
Java में TCP Client कैसे बनाएं?
Java में TCP Client बनाने के लिए java.net.Socket class का use किया जाता है। यह class network connection establish करने के लिए methods provide करती है।
Java TCP Client का Basic Example
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) {
try {
// Step 1: Server से connect करना
Socket socket = new Socket("localhost", 5000);
// Step 2: Data भेजने के लिए OutputStream
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
writer.println("Hello Server!");
// Step 3: Server से data प्राप्त करना
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String response = reader.readLine();
System.out.println("Server Response: " + response);
// Step 4: Connection बंद करना
socket.close();
} catch (IOException ex) {
System.out.println("Client Error: " + ex.getMessage());
}
}
}
Request-Response Communication का Example
मान लीजिए आपका client server को “Time” की request भेजता है और server current time वापस भेजता है। यह एक simple request-response communication का उदाहरण है।
Server Code (Java)
import java.io.*;
import java.net.*;
import java.time.LocalTime;
public class TCPServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(5000)) {
System.out.println("Server is running...");
while (true) {
Socket socket = serverSocket.accept();
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
String clientRequest = input.readLine();
System.out.println("Client Request: " + clientRequest);
if ("Time".equalsIgnoreCase(clientRequest)) {
output.println("Current Time: " + LocalTime.now());
} else {
output.println("Invalid Request!");
}
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
TCP Client की मुख्य विशेषताएँ
- Reliable Communication: TCP ensure करता है कि data loss न हो।
- Ordered Delivery: Data उसी order में पहुंचता है जिस order में भेजा गया।
- Error Detection: TCP automatic error checking करता है।
- Flow Control: Sender और receiver के बीच data transfer rate control करता है।
TCP Client के Advantages
- Reliable data transfer
- Automatic retransmission on packet loss
- Stream-based communication
- Two-way communication (full-duplex)
TCP Client के Disadvantages
- Slower than UDP due to connection overhead
- More resource consumption
- Not ideal for real-time apps like video streaming
TCP Client के Real-Life Examples
- Web Browsers (HTTP over TCP)
- Email Clients (SMTP, IMAP)
- FTP Clients
- Chat Applications
TCP और UDP में अंतर
| Feature | TCP | UDP |
|---|---|---|
| Reliability | Reliable | Unreliable |
| Connection Type | Connection-oriented | Connectionless |
| Speed | Slower | Faster |
| Use Case | File transfer, Email | Video streaming, Gaming |
TCP Client कहाँ Use होता है?
- Online file transfer systems
- Remote server communication
- Database connectivity
- Secure messaging apps
Exam Point of View से Important Key Points
- TCP Client always initiates the connection.
- Uses
Socketclass in Java for communication. - Communication pattern — Request-Response model.
- Reliable, ordered, and error-checked data transfer.
- Connection established before data exchange.
Quick Notes for Students
- TCP Client हमेशा server से पहले connect होता है।
Socket()constructor से connection establish किया जाता है।- Data भेजने के लिए
OutputStreamऔर receive करने के लिएInputStreamuse होता है। - Request-Response pattern में client request भेजता है और server उसका जवाब देता है।
- Java में Socket communication का basic package है — java.net