public static void send(Socket socket, Vector<String> vector){
        System.out.println("Sending " + vector.size() + " files");
        try {
            PrintWriter server = new PrintWriter(socket.getOutputStream());
            // Tell them how many files
            server.println(vector.size());
            for(String fileName : vector){
                server.println(fileName);
                server.flush();

                String response = readLine(socket);
                File file = new File(fileName);
                if(response.equals(EXISTS)){
                    server.println(getMD5Digest(file));
                    server.flush();
                    response = readLine(socket);

                    if(response.equals(CACHED) || response.equals(DECLINE))
                        continue; // They don't want or need this file, go to the next
                }else if(response.equals(ACCEPT)){
                    // send the file as normal
                }

                long fileSize = file.length();
                long bytesRead = 0;
                int read = 0;
                byte[] buffer = new byte[4096];

                server.println(fileSize);
                server.println(buffer.length);
                server.flush();

                System.out.println("Transfering " + fileName);
                BufferedInputStream reader = new BufferedInputStream(new FileInputStream(file));
                while(bytesRead < fileSize){
                    read = reader.read(buffer);
                    socket.getOutputStream().write(buffer,0,read);
                    bytesRead += read;
                }
                socket.getOutputStream().flush();
                System.out.println("Done Transfering " + fileName);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }