SocketClient

 avatar
unknown
plain_text
2 years ago
4.5 kB
5
Indexable
public class SocketClient {
    public static void main(String[] args) {
        // Define server host and port
        String serverHost = "localhost";
        int serverPort = 8080;

        // Try with resources block to automatically close sockets and streams
        try (Socket socket = new Socket(serverHost, serverPort);
             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
             BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in))) {

            // Variable to store user request
            String request;
            // Loop to continuously process user input
            while (true) {
                // Prompt user for command
                System.out.print("Enter command (ADDSONG, GETALLSONGS, GETARTIST, GETSONG, quit): ");
                // Read user input from the console
                request = consoleReader.readLine();

                // Break the loop if user input is "quit"
                if (request == null || "quit".equalsIgnoreCase(request)) {
                    break;
                }

                // Send user request to the server
                out.println(request);
                System.out.println("Sent request: " + request);

                // Process server responses based on the user request
                if ("ADDSONG".equalsIgnoreCase(request)) {
                    // Read the server response
                    String response = in.readLine();
                    System.out.println("Received response:");
                    System.out.println(response);
                    // Read song name from the user
                    String songName = consoleReader.readLine();
                    // Send the song name to the server
                    out.println(songName);

                    // Read the server response
                    response = in.readLine();
                    System.out.println("Received response:");
                    System.out.println(response);
                    // Read artist name from the user
                    String artistName = consoleReader.readLine();
                    // Send the artist name to the server
                    out.println(artistName);

                    // Read the server response
                    response = in.readLine();
                    System.out.println("Received response:");
                    System.out.println(response);
                } else if ("GETALLSONGS".equalsIgnoreCase(request)) {
                    // Read the server response
                    String response = in.readLine();
                    System.out.println("Received response: " + response);
                } else if ("GETARTIST".equalsIgnoreCase(request)) {
                    // Read the server response
                    String response = in.readLine();
                    System.out.println("Received response: " + response);

                    // Read artist name from the user
                    String artistName = consoleReader.readLine();
                    // Send the artist name to the server
                    out.println(artistName);

                    // Read the server response
                    response = in.readLine();
                    System.out.println("Received response: " + response);
                } else if ("GETSONG".equalsIgnoreCase(request)) {
                    // Read the server response
                    String response = in.readLine();
                    System.out.println("Received response: " + response);

                    // Read song name from the user
                    String songName = consoleReader.readLine();
                    // Send the song name to the server
                    out.println(songName);

                    // Read the server response
                    response = in.readLine();
                    System.out.println("Received response: " + response);
                } else {
                    // If the user enters an unknown request
                    System.out.println("Unknown request");
                }
            }
        } catch (IOException e) {
            // Handle exceptions related to server connection
            System.err.println("Error connecting to server: " + e.getMessage());
        }
    }
}
Editor is loading...