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