// Server Code
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(65432)) {
System.out.println("Server is listening on port 65432");
Socket socket = serverSocket.accept();
System.out.println("Connected to client");
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
String message;
while ((message = reader.readLine()) != null) {
System.out.println("Received from client: " + message);
// Reverse the message
String reversedMessage = new StringBuilder(message).reverse().toString();
writer.println(reversedMessage);
} catch (IOException ex) {
ex.printStackTrace();
}
// Client Code
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) {
try (Socket socket = new Socket("127.0.0.1", 65432)) {
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a message to send to the server: ");
String message = consoleReader.readLine();
writer.println(message);
String response = reader.readLine();
System.out.println("Received from server: " + response);
} catch (IOException ex) {
ex.printStackTrace();
}
}