0% found this document useful (0 votes)
2 views9 pages

TCP Echo Client

The document contains Java implementations for various TCP and UDP client-server applications, including echo clients and servers, chat servers, and a time server. Each implementation demonstrates socket programming principles, allowing communication between clients and servers over specified ports. The code is structured to handle user input, send messages, and receive responses, showcasing both connection-oriented (TCP) and connectionless (UDP) communication methods.

Uploaded by

tstanmoy28
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)
2 views9 pages

TCP Echo Client

The document contains Java implementations for various TCP and UDP client-server applications, including echo clients and servers, chat servers, and a time server. Each implementation demonstrates socket programming principles, allowing communication between clients and servers over specified ports. The code is structured to handle user input, send messages, and receive responses, showcasing both connection-oriented (TCP) and connectionless (UDP) communication methods.

Uploaded by

tstanmoy28
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/ 9

TCP Echo Client

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

class TCPEchoClient {
static int port = 5555;
static String add = "localhost";

public static void main(String[] args) {


try {
Socket cs = new Socket(add, port);
System.out.println("Connected to server");
InputStreamReader in1 = new InputStreamReader(System.in);
BufferedReader uir = new BufferedReader(in1);
InputStreamReader in2 = new InputStreamReader(cs.getInputStream());
BufferedReader sr = new BufferedReader(in2);
PrintWriter sw = new PrintWriter(cs.getOutputStream(), true);
String ui;
while ((ui = uir.readLine()) != null) {
sw.println(ui);
String ServerResponse = sr.readLine();
System.out.println("Server response = " + ServerResponse);
}
} catch (Exception e) {
System.out.println(e);
}
}
}
TCP Echo Server
import java.io.*;
import java.net.*;

class TCPEchoServer {
static int port = 5555;

public static void main(String[] args) {


try (ServerSocket ss = new ServerSocket(port)) {
System.out.println("TCP Echo server is listening");
Socket cs = ss.accept(); // Wait for a client connection
System.out.println("Client is connected");

// Setup input and output streams


InputStreamReader in = new InputStreamReader(cs.getInputStream());
BufferedReader cr = new BufferedReader(in);
PrintWriter cw = new PrintWriter(cs.getOutputStream(), true);

String cm; // Client message


while ((cm = cr.readLine()) != null) {
System.out.println("Retrieved from client: " + cm);
cw.println(cm); // Echo the message back to the client
System.out.println("Server echos: " + cm);
}

cs.close(); // Close the client socket


} catch (Exception e) {
System.out.println(e);
}
}
}
TCP Chat Server
import java.io.*;
import java.net.*;

class TCPChatServer {
static int PORT = 5555;

public static void main(String args[]) {


try (ServerSocket ss = new ServerSocket(PORT)) {
System.out.println("TCP chat server listening on port: " + PORT);

Socket cs = ss.accept();
System.out.println("Client connected: " + cs.getInetAddress());

BufferedReader cr = new BufferedReader(new InputStreamReader(cs.getInputStream()));


PrintWriter cw = new PrintWriter(cs.getOutputStream(), true);
BufferedReader sr = new BufferedReader(new InputStreamReader(System.in));

String cm, sm;

while (true) {
if ((cm = cr.readLine()) != null) {
System.out.println("Received from client: " + cm);
}

System.out.print("Enter message to client: ");


sm = sr.readLine();

cw.println("Server says: " + sm);


}
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
TCP Chat Client
import java.io.*;
import java.net.*;

class TCPChatClient {
static String SERVER_ADDRESS = "localhost";
static int SERVER_PORT = 5555;

public static void main(String args[]) {


try (Socket cs = new Socket(SERVER_ADDRESS, SERVER_PORT)) {
System.out.println("Connected to Server");

BufferedReader userInputReader = new BufferedReader(new InputStreamReader(System.in));


BufferedReader serverReader = new BufferedReader(new InputStreamReader(cs.getInputStream()));
PrintWriter serverWriter = new PrintWriter(cs.getOutputStream(), true);

String userInput, serverResponse;

while (true) {
System.out.print("Enter message to server: ");
userInput = userInputReader.readLine();

serverWriter.println("Client says: " + userInput);

if ((serverResponse = serverReader.readLine()) != null) {


System.out.println("Server Response: " + serverResponse);
}
}

} catch (IOException e) {
System.out.println("Error = " + e);
}
}
}
TCP Server to collect date and time
import java.util.Date;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;

class TCPTime {
public static final int port = 9001;
public static final String address = "127.0.0.1";

public static void main(String[] args) {


Scanner sc = new Scanner(System.in);
System.out.print("Enter 1 for Server mode and 2 for Client mode: ");
int mode = sc.nextInt();
sc.close();

if (mode == 1) {
TimeServer server = new TimeServer(port);
System.out.println("Time server is starting, waiting for connection...");
server.run();
} else if (mode == 2) {
TimeClient client = new TimeClient(address, port);
System.out.println("Time client is starting. Requesting time from server...");
client.run();
} else {
System.out.println("Invalid choice");
}
}
}

class TimeServer {
private final int port;

public TimeServer(int port) {


this.port = port;
}

public void run() {


try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Time server is listening on port: " + port);
while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println("Connected client: " + clientSocket.getInetAddress());
String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream(), true);
writer.println(currentTime);
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

class TimeClient {
private final int serverPort;
private final String serverAddress;

public TimeClient(String serverAddress, int serverPort) {


this.serverAddress = serverAddress;
this.serverPort = serverPort;
}

public void run() {


try (Socket socket = new Socket(serverAddress, serverPort)) {
System.out.println("Connected to server");
BufferedReader serverReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String serverTime = serverReader.readLine();
System.out.println("Server Time: " + serverTime);
} catch (IOException e) {
e.printStackTrace();
}
}
}
UDP Server to get date and time
UDP Server
import java.net.*;
import java.util.Date;

public class UDPServer {

public static void main(String[] args) {


try {
DatagramSocket ss = new DatagramSocket(1234);
System.out.println("Server is up and waiting for requests...");

byte[] rd = new byte[100];


byte[] sd;

while (true) {
// Receive packet
DatagramPacket rp = new DatagramPacket(rd, rd.length);
ss.receive(rp);
InetAddress ip = rp.getAddress();
int port = rp.getPort();

String clientMessage = new String(rp.getData(), 0, rp.getLength());


System.out.println("Received from client: " + clientMessage);

// Prepare response
String time = new Date().toString();
sd = time.getBytes();

// Send packet
DatagramPacket sp = new DatagramPacket(sd, sd.length, ip, port);
ss.send(sp);

System.out.println("Time sent to client.\n");


}
} catch (Exception e) {
System.out.println("Error: " + e);
}
}
}
UDP Client
import java.net.*;

public class UDPClient {


public static void main(String[] args) {
try {
System.out.println("Requesting server time...");

DatagramSocket cs = new DatagramSocket();


InetAddress ip = InetAddress.getByName("localhost");

String message = "Good morning";


byte[] sD = message.getBytes();
byte[] rD = new byte[1024];

// Send request packet


DatagramPacket sP = new DatagramPacket(sD, sD.length, ip, 1234);
cs.send(sP);

// Receive response packet


DatagramPacket rP = new DatagramPacket(rD, rD.length);
cs.receive(rP);

String time = new String(rP.getData(), 0, rP.getLength());


System.out.println("Server Time: " + time);

cs.close();
} catch (Exception e) {
System.out.println("Error: " + e);
}
}
}
UDP Echo Server
import java.net.*;
import java.io.*;

class UDPServer {
public static void main(String[] args) {
byte[] data = new byte[65507]; // Max UDP packet size
try {
DatagramSocket skt = new DatagramSocket(1000);
System.out.println("UDP Echo Server running on port 1000...");

while (true) {
DatagramPacket dp = new DatagramPacket(data, data.length);

skt.receive(dp); // Receive message


String s = new String(dp.getData(), 0, dp.getLength());
System.out.println("Received: " + s);

// Echo back the same message to client


InetAddress clientAddress = dp.getAddress();
int clientPort = dp.getPort();
DatagramPacket echo = new DatagramPacket(dp.getData(), dp.getLength(), clientAddress, clientPort);
skt.send(echo);
}
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
UDP Echo Client
import java.util.*;
import java.io.*;
import java.net.*;

class UDPClient {
public static void main(String[] args) {
byte[] data;
DatagramPacket dp;

try {
InetAddress add = InetAddress.getLocalHost(); // or use InetAddress.getByName("localhost");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket socket = new DatagramSocket();

System.out.println("Enter text to send to server (type '.' to quit):");


while (true) {
String line = br.readLine();
if (line.equals(".")) {
break;
}
data = line.getBytes();
dp = new DatagramPacket(data, data.length, add, 1000);
socket.send(dp);
}
socket.close();

} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}

You might also like