Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
3.2 kB
2
Indexable
Never
import java.io.*;
import java.net.*;

public class DirectoryServer {
    private static final int PORT = 12345;
    private static String currentDirectory = System.getProperty("user.dir");

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(PORT);
            System.out.println("Server is running...");

            while (true) {
                Socket clientSocket = serverSocket.accept();
                System.out.println("Client connected.");

                handleClient(clientSocket);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void handleClient(Socket clientSocket) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);

        String clientRequest;
        while ((clientRequest = in.readLine()) != null) {
            if (clientRequest.equals("getcwd")) {
                out.println(currentDirectory);
            } else if (clientRequest.startsWith("chdir ")) {
                String newDirectory = clientRequest.substring(6);
                boolean success = changeDirectory(newDirectory);
                if (success) {
                    out.println("Directory changed to: " + currentDirectory);
                } else {
                    out.println("Failed to change directory.");
                }
            } else if (clientRequest.equals("exit")) {
                break;
            } else {
                out.println("Unknown command: " + clientRequest);
            }
        }

        clientSocket.close();
        System.out.println("Client disconnected.");
    }

    private static boolean changeDirectory(String newDirectory) {
        File dir = new File(newDirectory);
        if (dir.exists() && dir.isDirectory()) {
            currentDirectory = dir.getAbsolutePath();
            return true;
        } else {
            return false;
        }
    }
}

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

public class DirectoryClient {
    private static final String SERVER_ADDRESS = "localhost";
    private static final int SERVER_PORT = 12345;

    public static void main(String[] args) {
        try {
            Socket socket = new Socket(SERVER_ADDRESS, SERVER_PORT);
            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);
                String serverResponse = in.readLine();
                System.out.println("Server: " + serverResponse);

                if (userInput.equals("exit")) {
                    break;
                }
            }

            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}