Advertisement
Guest User

PeerServerThread

a guest
Feb 21st, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.27 KB | None | 0 0
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.PrintStream;
  9. import java.net.ServerSocket;
  10. import java.net.Socket;
  11.  
  12. public class PeerServerThread implements Runnable{
  13.    
  14.     private ServerSocket server;
  15.     private Socket socket;
  16.     private PrintStream output;
  17.     private int port;
  18.     private BufferedReader input;
  19.     private FileInputStream fin;
  20.     private BufferedInputStream bis;
  21.     private OutputStream os;
  22.     private String path = "/Users/erikcolin/Documents/CS550_PA1_files/Peer";
  23.  
  24.  
  25.     public PeerServerThread(Socket peerServer,int p) throws IOException {
  26.         socket = peerServer;
  27.         port = p;
  28.         input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  29.         output = new PrintStream(socket.getOutputStream());
  30.        
  31.        
  32.     }
  33.  
  34.  
  35.  
  36.     @Override
  37.     public void run() {
  38.         // TODO Auto-generated method stub
  39.         try {
  40.             output.flush();
  41.             output.println("You are connected to a Peer on Port: " + port);
  42.             String pid = input.readLine();                                      //id of this peer that has the file
  43.             String filename = input.readLine();                                 //file name sent from client peer
  44.             String FILE_PATH = path + pid + "/" + filename;
  45.             File file = new File(FILE_PATH);
  46.            
  47.             //output.println(path + pid + "/" + filename);
  48.             while(true)
  49.             {
  50.             try {
  51.                 fin = new FileInputStream(file);
  52.                 byte [] mybytearray = new byte[(int)file.length()];
  53.                 bis = new BufferedInputStream(fin);
  54.                 bis.read(mybytearray,0,mybytearray.length);
  55.                 os = socket.getOutputStream();
  56.                 System.out.println("Sending " + FILE_PATH + "(" + mybytearray.length + " bytes)");
  57.                 os.write(mybytearray,0,mybytearray.length);
  58.                 os.flush();
  59.                 System.out.println("DONE");
  60.             }
  61.             finally {
  62.                 if (bis != null) bis.close();
  63.                 if (os != null) os.close();
  64.                 //if (socket!=null) socket.close();
  65.             }
  66.             }
  67.         }
  68.         catch (IOException e) {
  69.             // TODO Auto-generated catch block
  70.             e.printStackTrace();
  71.         }
  72.         /*try
  73.         {
  74.             output.println("You are connected to a Peer");
  75.         }
  76.         catch (IOException e) {
  77.             // TODO Auto-generated catch block
  78.             e.printStackTrace();
  79.         }   */
  80.         //output.println("You are connected to a Peer");
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement