From 5f0d6e90dbeb6eab839b39549ed8a7badf9811f0 Mon Sep 17 00:00:00 2001 From: ik1g19 <ik1g19@soton.ac.uk> Date: Mon, 29 Mar 2021 01:01:04 +0100 Subject: [PATCH] add file transfer --- fileTransfer/FTClient.class | Bin 0 -> 2414 bytes fileTransfer/FTClient.java | 50 +++++++++++++++++++++++++++++ fileTransfer/FTServer.class | Bin 0 -> 2700 bytes fileTransfer/FTServer.java | 61 ++++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 fileTransfer/FTClient.class create mode 100644 fileTransfer/FTClient.java create mode 100644 fileTransfer/FTServer.class create mode 100644 fileTransfer/FTServer.java diff --git a/fileTransfer/FTClient.class b/fileTransfer/FTClient.class new file mode 100644 index 0000000000000000000000000000000000000000..208042475ace482b2168700aa6542fc8b06b8b5b GIT binary patch literal 2414 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 literal 0 HcmV?d00001 diff --git a/fileTransfer/FTClient.java b/fileTransfer/FTClient.java new file mode 100644 index 0000000..504fb10 --- /dev/null +++ b/fileTransfer/FTClient.java @@ -0,0 +1,50 @@ +import java.io.*; +import java.net.*; +public class FTClient { + public static void main(String[] args) throws IOException { + System.out.println(args[0] + " " + args[1] + " " + args[2] + " " + args[3]); + if (args[1].equals("put")) { + File inputFile = new File(args[2]); + FileInputStream in = new FileInputStream(inputFile); + try { + Socket socket = new Socket(args[0], 4323); + OutputStream out = socket.getOutputStream(); + out.write(("put" + " " + args[3] + " ").getBytes()); + byte[] buf = new byte[1000]; + int buflen; + while ((buflen = in.read(buf)) != -1) { + System.out.print("*"); + out.write(buf, 0, buflen); + } + out.close(); + } catch (Exception e) { + System.out.println("error" + e); + } + System.out.println(); in .close(); + + } + else if(args[1].equals("get")) { + File outputFile = new File(args[2]); + FileOutputStream outf = new FileOutputStream(outputFile); + try { + Socket socket = new Socket(args[0], 4323); + OutputStream out = socket.getOutputStream(); + InputStream in = socket.getInputStream(); + out.write(("get" + " " + args[3] + " ").getBytes()); + byte[] buf = new byte[1000]; + int buflen; + while ((buflen = in.read(buf)) != -1) { + System.out.print("*"); + outf.write(buf, 0, buflen); + } + out.close(); + in.close(); + } catch (Exception e) { + System.out.println("error" + e); + } + System.out.println(); + outf.close(); + } + else System.out.println("unrecognised command"); + } +} \ No newline at end of file diff --git a/fileTransfer/FTServer.class b/fileTransfer/FTServer.class new file mode 100644 index 0000000000000000000000000000000000000000..4fa2b944c4e286fa346c409140cd0b37d902b2e6 GIT binary patch literal 2700 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 UDGUq@Tnvm1QyHc+%w&)R0GwZfxBvhE literal 0 HcmV?d00001 diff --git a/fileTransfer/FTServer.java b/fileTransfer/FTServer.java new file mode 100644 index 0000000..de67fc0 --- /dev/null +++ b/fileTransfer/FTServer.java @@ -0,0 +1,61 @@ +import java.io.*; +import java.net.*; +public class FTServer { + public static void main(String[] args) throws IOException { + try { + ServerSocket ss = new ServerSocket(4323); + for (;;) { + try { + System.out.println("waiting for connection"); + Socket client = ss.accept(); + System.out.println("connected"); + InputStream in = client.getInputStream(); + byte[] buf = new byte[1000]; + int buflen; + buflen = in.read(buf); + String firstBuffer = new String(buf, 0, buflen); + int firstSpace = firstBuffer.indexOf(" "); + String command = firstBuffer.substring(0, firstSpace); + System.out.println("command " + command); + if (command.equals("put")) { + int secondSpace = firstBuffer.indexOf(" ", firstSpace + 1); + String fileName = firstBuffer.substring(firstSpace + 1, secondSpace); + System.out.println("fileName " + fileName); + File outputFile = new File(fileName); + FileOutputStream out = new FileOutputStream(outputFile); + out.write(buf, secondSpace + 1, buflen - secondSpace - 1); + while ((buflen = in.read(buf)) != -1) { + System.out.print("*"); + out.write(buf, 0, buflen); + } + in.close(); + client.close(); + out.close(); + } + else if(command.equals("get")) { + int secondSpace = firstBuffer.indexOf(" ", firstSpace + 1); + String fileName = firstBuffer.substring(firstSpace + 1, secondSpace); + System.out.println("fileName " + fileName); + File inputFile = new File(fileName); + FileInputStream inf = new FileInputStream(inputFile); + OutputStream out = client.getOutputStream(); + while ((buflen = inf.read(buf)) != -1) { + System.out.print("*"); + out.write(buf, 0, buflen); + } + in.close(); + inf.close(); + client.close(); + out.close(); + } + else System.out.println("unrecognised command"); + } catch (Exception e) { + System.out.println("error " + e); + } + } + } catch (Exception e) { + System.out.println("error " + e); + } + System.out.println(); + } +} \ No newline at end of file -- GitLab