0% found this document useful (0 votes)
5 views

Socket_Programming_Java_All_Examples

The document provides examples of socket programming in Java, covering both TCP and UDP protocols. It includes implementations for an echo server/client, a UDP time server/client, iterative and concurrent TCP servers, and a simple DNS server/client. Each section contains code snippets and executed outputs demonstrating the functionality of the respective server and client applications.

Uploaded by

Jasmeet Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Socket_Programming_Java_All_Examples

The document provides examples of socket programming in Java, covering both TCP and UDP protocols. It includes implementations for an echo server/client, a UDP time server/client, iterative and concurrent TCP servers, and a simple DNS server/client. Each section contains code snippets and executed outputs demonstrating the functionality of the respective server and client applications.

Uploaded by

Jasmeet Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Socket Programming in Java (UDP & TCP)

1. TCP Echo Client/Server

Code:
// EchoServer.java
import java.io.*;
import java.net.*;

public class EchoServer {


public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("Server started...");
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println("Echo: " + inputLine);
}
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}

// EchoClient.java
import java.io.*;
import java.net.*;

public class EchoClient {


public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 1234);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println(in.readLine());
}
out.close();
in.close();
stdIn.close();
socket.close();
}
}

Executed Output:
Server started...
Client: Hello
Socket Programming in Java (UDP & TCP)

Server: Echo: Hello


Socket Programming in Java (UDP & TCP)

2. UDP Time Client/Server

Code:
// UDPServer.java
import java.net.*;
import java.util.*;

public class UDPServer {


public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData;
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket);
String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
if (sentence.equalsIgnoreCase("time")) {
String currentTime = new Date().toString();
sendData = currentTime.getBytes();
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
socket.send(sendPacket);
}
}
}
}

// UDPClient.java
import java.net.*;

public class UDPClient {


public static void main(String[] args) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = "time".getBytes();
byte[] receiveData = new byte[1024];
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
}
}

Executed Output:
FROM SERVER: Sun May 11 12:45:30 IST 2025
Socket Programming in Java (UDP & TCP)

3. TCP Iterative Server

Code:
// IterativeServer.java
import java.io.*;
import java.net.*;

public class IterativeServer {


public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5000);
System.out.println("Iterative Server started...");
while (true) {
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println("Processed: " + inputLine);
if (inputLine.equalsIgnoreCase("bye")) break;
}
in.close();
out.close();
clientSocket.close();
}
}
}

Executed Output:
Client connected...
Client: Hello
Server: Processed: Hello
Client: bye
Server: Processed: bye
Socket Programming in Java (UDP & TCP)

4. TCP Concurrent Server

Code:
// ConcurrentServer.java
import java.io.*;
import java.net.*;

public class ConcurrentServer {


public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(6000);
System.out.println("Concurrent Server started...");
while (true) {
Socket clientSocket = serverSocket.accept();
new Thread(new ClientHandler(clientSocket)).start();
}
}
}

class ClientHandler implements Runnable {


private Socket clientSocket;

public ClientHandler(Socket socket) {


this.clientSocket = socket;
}

public void run() {


try {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println("Processed concurrently: " + inputLine);
if (inputLine.equalsIgnoreCase("bye")) break;
}
in.close();
out.close();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Executed Output:
Multiple clients handled in parallel
Client1: Hello -> Server: Processed concurrently: Hello
Socket Programming in Java (UDP & TCP)

5. Simple DNS Client/Server

Code:
// DNSServer.java
import java.net.*;
import java.io.*;
import java.util.HashMap;

public class DNSServer {


public static void main(String[] args) throws IOException {
DatagramSocket serverSocket = new DatagramSocket(7000);
byte[] receiveData = new byte[1024];
byte[] sendData;

HashMap<String, String> dnsTable = new HashMap<>();


dnsTable.put("google.com", "142.250.190.78");
dnsTable.put("example.com", "93.184.216.34");

while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String domain = new String(receivePacket.getData(), 0, receivePacket.getLength());
String ip = dnsTable.getOrDefault(domain, "Domain not found");
sendData = ip.getBytes();
InetAddress clientAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, port);
serverSocket.send(sendPacket);
}
}
}

// DNSClient.java
import java.net.*;

public class DNSClient {


public static void main(String[] args) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = "google.com".getBytes();
byte[] receiveData = new byte[1024];
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 7000);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String response = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("FROM SERVER: " + response);
clientSocket.close();
}
}
Socket Programming in Java (UDP & TCP)

Executed Output:
FROM SERVER: 142.250.190.78

You might also like