Skip to content
Snippets Groups Projects
Select Git revision
  • b0803d26aa2d2de4a627bd444c171e7b3aba479e
  • master default protected
2 results

gitBranches.md

Blame
  • Forked from SERG / woRkflow
    Source project has a limited visibility.
    StoreThread.java 1.44 KiB
    import java.io.*;
    import java.net.Socket;
    
    public class StoreThread implements Runnable{
    
        private final PrintWriter controller;
        private final String filePath;
        private final String fileName;
        private final InputStream in;
        private final OutputStream out;
        private final Socket client;
        private final int fileSize;
    
        public StoreThread(PrintWriter co, String p, String n, InputStream i, OutputStream o, Socket c, int fs) {
            controller = co;
            filePath = p;
            fileName = n;
            in = i;
            out = o;
            client = c;
            fileSize = fs;
        }
    
        @Override
        public void run() {
            try {
                //Send ACK to client
                out.write("ACK".getBytes());
    
                //Prepare to write to file
                File outputFile = new File(filePath+File.separator+fileName);
                FileOutputStream fileOutput = new FileOutputStream(outputFile);
    
                //Read correct bytes from input stream and write to file
                byte[] buf = in.readNBytes(fileSize);
                fileOutput.write(buf);
    
                //Send completion ack to controller
                controller.println("STORE_ACK "+fileName);
                controller.flush();
    
                //Close file output
                fileOutput.close();
    
                //Close streams
                in.close();
                out.close();
                client.close();
            }catch (Exception e){
                System.out.println("error "+e);
            }
        }
    }