Untitled
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(); } } }