Database-Client-Server / src / ClientHandler.java
ClientHandler.java
Raw
import java.io.*;
import java.net.*;

public class ClientHandler implements Runnable {
    //declare variables
    Socket clientSocket;
    int clientId;
    Database db;

    //Constructor
    public ClientHandler(Socket socket, int clientId, Database db) {
        //complete the constructor
        clientSocket = socket;
        this.clientId = clientId;
        this.db = db;
    }

    public void run() {
        try {
            System.out.println("ClientHandler started...");
            //  Create I/O streams to read/write data, PrintWriter and BufferedReader
            BufferedReader inFromClient = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            PrintWriter outToClient = new PrintWriter(clientSocket.getOutputStream(), true);
            String clientMessage;

            //Receive messages from the client and send replies, until the user types "stop"
            while (!(clientMessage = inFromClient.readLine()).equals("stop")) {
                System.out.println("Client sent the artist name " + clientMessage);
                //  Request the number of titles from the db
                int titlesNum = db.getTitles(clientMessage);
                //Send reply to Client:
                outToClient.println("Number of titles: " + titlesNum + " records found");
            }
            System.out.println("Client " + clientId + " has disconnected");
            outToClient.println("Connection closed, Goodbye!");
            //Close I/O streams and socket
            inFromClient.close();
            outToClient.close();
            clientSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}