Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.SocketTimeoutException;
- import java.util.ArrayList;
- public class FileServer extends Thread {
- private static ArrayList<String> files;
- private static final int port = 4711;
- private ServerSocket serverSocket;
- public FileServer(int port) throws Exception {
- serverSocket = new ServerSocket(port);
- serverSocket.setSoTimeout(100000);
- }
- public void run() {
- while (true) {
- try {
- System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "...");
- Socket server = serverSocket.accept();
- System.out.println("Just connected to " + server.getRemoteSocketAddress());
- DataInputStream in = new DataInputStream(server.getInputStream());
- DataOutputStream out = new DataOutputStream(server.getOutputStream());
- switch (in.readUTF()){
- case "dir":
- for (String fileName : files) {
- out.writeUTF(fileName);
- }
- out.flush();
- }
- //out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!");
- in.close();
- out.close();
- server.close();
- serverSocket.close();
- } catch (SocketTimeoutException s) {
- System.out.println("Socket timed out!");
- break;
- } catch (Exception e) {
- e.printStackTrace();
- break;
- }
- }
- }
- public static void main(String[] args) {
- files = new ArrayList<String>();
- if (args.length > 0) {
- for (int i = 0; i < args.length; i++) {
- files.add(args[i]);
- }
- System.out.println(files.size() + " files loaded!");
- }else{
- System.out.println("No files loaded!");
- }
- try {
- Thread t = new FileServer(port);
- t.start();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement