diff --git a/19-NetworkProgramming/Echo-TCP/.idea/misc.xml b/19-NetworkProgramming/Echo-TCP/.idea/misc.xml new file mode 100644 index 0000000..225b430 --- /dev/null +++ b/19-NetworkProgramming/Echo-TCP/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/Echo-TCP/.idea/modules.xml b/19-NetworkProgramming/Echo-TCP/.idea/modules.xml new file mode 100644 index 0000000..2d66916 --- /dev/null +++ b/19-NetworkProgramming/Echo-TCP/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/Echo-TCP/.idea/vcs.xml b/19-NetworkProgramming/Echo-TCP/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/19-NetworkProgramming/Echo-TCP/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/Echo-TCP/.idea/workspace.xml b/19-NetworkProgramming/Echo-TCP/.idea/workspace.xml new file mode 100644 index 0000000..11cf2ae --- /dev/null +++ b/19-NetworkProgramming/Echo-TCP/.idea/workspace.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1598951268653 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/Echo-UDP/Client.java b/19-NetworkProgramming/Echo-UDP/Client.java new file mode 100644 index 0000000..143ffbc --- /dev/null +++ b/19-NetworkProgramming/Echo-UDP/Client.java @@ -0,0 +1,31 @@ +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.util.Scanner; + +public class Client { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + byte[] inData = new byte[1024]; + byte[] outData = new byte[1024]; + try(DatagramSocket socket = new DatagramSocket()){ + InetAddress address = InetAddress.getLocalHost(); + while (true){ + System.out.print("input> "); + String message = scanner.nextLine(); + outData = message.getBytes(); + DatagramPacket packet = new DatagramPacket(outData,outData.length,address,5000); + socket.send(packet); + if(message.equalsIgnoreCase("exit")){ + packet = new DatagramPacket(inData, inData.length); + socket.receive(packet); + String response = new String(inData,0,packet.getLength()); + System.out.println(response); + break; + } + } + }catch (Exception e){ + System.out.println(e); + } + } +} diff --git a/19-NetworkProgramming/Echo-UDP/Server.java b/19-NetworkProgramming/Echo-UDP/Server.java new file mode 100644 index 0000000..e304384 --- /dev/null +++ b/19-NetworkProgramming/Echo-UDP/Server.java @@ -0,0 +1,34 @@ +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; + +public class Server { + public static void main(String[] args) { + byte[] inData = new byte[1024]; + byte[] outData = new byte[1024]; + try(DatagramSocket socket = new DatagramSocket(5000)){ + System.out.println("listening to port:5000"); + + while (true){ + DatagramPacket packet = new DatagramPacket(inData,inData.length); + socket.receive(packet); + + InetAddress address = packet.getAddress(); + int port = packet.getPort(); + + String message = new String(inData,0,packet.getLength()); + System.out.println("client@"+port+": "+message); + + if(message.equalsIgnoreCase("exit")){ + String response = "connection closed."; + outData = response.getBytes(); + packet = new DatagramPacket(outData,outData.length,address,port); + socket.send(packet); + } + } + + }catch(Exception e){ + System.out.println(e); + } + } +} diff --git a/19-NetworkProgramming/FileTransfer.1.0/.idea/misc.xml b/19-NetworkProgramming/FileTransfer.1.0/.idea/misc.xml new file mode 100644 index 0000000..225b430 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.0/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.0/.idea/modules.xml b/19-NetworkProgramming/FileTransfer.1.0/.idea/modules.xml new file mode 100644 index 0000000..1775e81 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.0/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.0/.idea/uiDesigner.xml b/19-NetworkProgramming/FileTransfer.1.0/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.0/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.0/.idea/vcs.xml b/19-NetworkProgramming/FileTransfer.1.0/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.0/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.0/.idea/workspace.xml b/19-NetworkProgramming/FileTransfer.1.0/.idea/workspace.xml new file mode 100644 index 0000000..44bb766 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.0/.idea/workspace.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1601222328603 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.1/Client.java b/19-NetworkProgramming/FileTransfer.1.1/Client.java new file mode 100644 index 0000000..ac20ef2 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.1/Client.java @@ -0,0 +1,38 @@ +import java.io.*; +import java.net.Socket; + +public class Client { + private static DataOutputStream dataOutputStream = null; + private static DataInputStream dataInputStream = null; + + public static void main(String[] args) { + try(Socket socket = new Socket("localhost",5000)) { + dataInputStream = new DataInputStream(socket.getInputStream()); + dataOutputStream = new DataOutputStream(socket.getOutputStream()); + + sendFile("path/to/File1.pdf"); + sendFile("path/to/File2.pdf"); + + dataInputStream.close(); + dataInputStream.close(); + }catch (Exception e){ + e.printStackTrace(); + } + } + + private static void sendFile(String path) throws Exception{ + int bytes = 0; + File file = new File(path); + FileInputStream fileInputStream = new FileInputStream(file); + + // send file size + dataOutputStream.writeLong(file.length()); + // break file into chunks + byte[] buffer = new byte[4*1024]; + while ((bytes=fileInputStream.read(buffer))!=-1){ + dataOutputStream.write(buffer,0,bytes); + dataOutputStream.flush(); + } + fileInputStream.close(); + } +} \ No newline at end of file diff --git a/19-NetworkProgramming/FileTransfer.1.1/Server.java b/19-NetworkProgramming/FileTransfer.1.1/Server.java new file mode 100644 index 0000000..566b659 --- /dev/null +++ b/19-NetworkProgramming/FileTransfer.1.1/Server.java @@ -0,0 +1,42 @@ +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.FileOutputStream; +import java.net.ServerSocket; +import java.net.Socket; + +public class Server { + private static DataOutputStream dataOutputStream = null; + private static DataInputStream dataInputStream = null; + + public static void main(String[] args) { + try(ServerSocket serverSocket = new ServerSocket(5000)){ + System.out.println("listening to port:5000"); + Socket clientSocket = serverSocket.accept(); + System.out.println(clientSocket+" connected."); + dataInputStream = new DataInputStream(clientSocket.getInputStream()); + dataOutputStream = new DataOutputStream(clientSocket.getOutputStream()); + + receiveFile("NewFile1.pdf"); + receiveFile("NewFile2.pdf"); + + dataInputStream.close(); + dataOutputStream.close(); + clientSocket.close(); + } catch (Exception e){ + e.printStackTrace(); + } + } + + private static void receiveFile(String fileName) throws Exception{ + int bytes = 0; + FileOutputStream fileOutputStream = new FileOutputStream("media/"+fileName); + + long size = dataInputStream.readLong(); // read file size + byte[] buffer = new byte[4*1024]; + while (size > 0 && (bytes = dataInputStream.read(buffer, 0, (int)Math.min(buffer.length, size))) != -1) { + fileOutputStream.write(buffer,0,bytes); + size -= bytes; // read upto file size + } + fileOutputStream.close(); + } +} diff --git a/19-NetworkProgramming/FileTransfer.1.1/media/placeholder b/19-NetworkProgramming/FileTransfer.1.1/media/placeholder new file mode 100644 index 0000000..e69de29