diff --git a/Teams/TCPClient.java b/Teams/TCPClient.java new file mode 100644 index 0000000000000000000000000000000000000000..a1534c93cf168d5060df4523b6ee324094f5347a --- /dev/null +++ b/Teams/TCPClient.java @@ -0,0 +1,36 @@ +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; + +public class TCPClient { + // start client and expects IP-Adress and Serverport as arguments + public static void main(String[] args) { + if (args.length != 2) { + System.out.println("Please Type in servername (IP-Adress)and Serverport as arguments"); + return; + } + + // safe name and port as variables + String serverName = args[0]; + int serverPort = Integer.parseInt(args[1]); + + try { + // create new socket with the given data + Socket socket = new Socket(serverName, serverPort); + // create DataOutStream from socket to send data to server + DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); + + // send all numbers 0...1000000 in a loop part by part + for (int i = 0; i <= 1000000; i++) { + outputStream.writeInt(i); + } + + // close resources + outputStream.close(); + socket.close(); + System.out.println("Send numbers successfully :) "); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/Teams/TCPServer.java b/Teams/TCPServer.java new file mode 100644 index 0000000000000000000000000000000000000000..4c2ff1eb0763251798074255ae359f84e07f8394 --- /dev/null +++ b/Teams/TCPServer.java @@ -0,0 +1,48 @@ +import java.io.DataInputStream; +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + +public class TCPServer { + + // server started and expects serverport as argument + public static void main(String[] args) throws IOException { + if (args.length != 1) { + System.out.println("Please give Serverport as argument"); + } + //given arg will be saved as an integer + int serverPort = Integer.parseInt(args[0]); + + // ServerSocket will be crested with the given port and wait for incoming connection + ServerSocket serverSocket = new ServerSocket(serverPort); + System.out.println("** start server ** \nwaiting for connection... (now you should start the client ;) )"); + + while (true) { + // as far as a client try to connect, the server will accept and a Socket for communication will be created + Socket clientSocket = serverSocket.accept(); + System.out.println("Client connected."); + + // create DataInputstream from socket, to read data from client + try (DataInputStream inputStream = new DataInputStream(clientSocket.getInputStream())) { + boolean error = false; + + // loop to check numbers 1...1000000 + for (int i = 0; i <= 1000000; i++) { + // get current number from inputstream + int receivedNumber = inputStream.readInt(); + // compare actual and expected and throw error if something is missing + if (receivedNumber != i) { + System.out.println("Error: expected number: " + i + ", but received: " + receivedNumber); + error = true; + } + } + // if every number is received, print success + if (!error) { + System.out.println("All numbers received successfully :)"); + } + } + //close all resources + clientSocket.close(); + } + } +} \ No newline at end of file diff --git a/Teams/UDPClient.class b/Teams/UDPClient.class new file mode 100644 index 0000000000000000000000000000000000000000..7e16af19aa4476140d0b6de915189abed1d45208 Binary files /dev/null and b/Teams/UDPClient.class differ diff --git a/Teams/UDPClient.java b/Teams/UDPClient.java new file mode 100644 index 0000000000000000000000000000000000000000..7e89f76a01876c43eca5c0ba3b4f104d8d71d813 --- /dev/null +++ b/Teams/UDPClient.java @@ -0,0 +1,40 @@ +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.nio.ByteBuffer; + +public class UDPClient { + // start client and expects IP-Adress and Serverport as arguments + public static void main(String[] args) { + if (args.length != 2) { + System.out.println("Please Type in servername (IP-Adress)and Serverport as arguments"); + return; + } + + String serverName = args[0]; + int serverPort = Integer.parseInt(args[1]); + + try { + // create ServerAdress from servername (std. localhost) + InetAddress serverAddress = InetAddress.getByName(serverName); + // create DatagramSocket to send datagrams + DatagramSocket socket = new DatagramSocket(); + + // loop... + for (int i = 0; i <= 1000000; i++) { + // i is converted in a Byte-Array so it can be sent + byte[] sendBuffer = ByteBuffer.allocate(4).putInt(i).array(); + // create DatagramPackage with the cinverted number + DatagramPacket sendPackage = new DatagramPacket(sendBuffer, sendBuffer.length, serverAddress, serverPort); + // Package will be sent + socket.send(sendPackage); + } + + socket.close(); + System.out.println("Send numbers successfully :) "); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/Teams/UDPServer.class b/Teams/UDPServer.class new file mode 100644 index 0000000000000000000000000000000000000000..69375ee3e319b357f948a9b0cbf4837f59be342f Binary files /dev/null and b/Teams/UDPServer.class differ diff --git a/Teams/UDPServer.java b/Teams/UDPServer.java new file mode 100644 index 0000000000000000000000000000000000000000..416b123c9935b0337708dc797d253860c1efccda --- /dev/null +++ b/Teams/UDPServer.java @@ -0,0 +1,49 @@ +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.nio.ByteBuffer; + +public class UDPServer { + // server started and expects serverport as argument + public static void main(String[] args) throws IOException { + if(args.length != 1) { + System.out.println("Please give Serverport as argument"); + return; + } + int serverPort = Integer.parseInt(args[0]); + + // create datagramsocket with given data + DatagramSocket serverSocket = new DatagramSocket(serverPort); + + // create buffer to safe incoming data later + byte[] receiveBuffer = new byte[4]; // 4 Bytes bc. Integer + + int error = 0; + + while(true) { + + System.out.println("\n** start server ** \nwaiting for packet... (now you should start the client)"); + + // create DatagramPackage to receive data and safe in the buffer + DatagramPacket receivePackage = new DatagramPacket(receiveBuffer, receiveBuffer.length); + // loop to check numbers 1...1000000 + for(int i = 0; i <= 1000000; i++) { + // serversocket receives data and safe thes in receivePackage + serverSocket.receive(receivePackage); + int receivedNumber = ByteBuffer.wrap(receivePackage.getData(), 0, receivePackage.getLength()).getInt(); + + // compare actual and expected and throw error if something is missing + if(receivedNumber != i) { + System.out.println("Error: expected number: " + i + ", but received: " + receivedNumber); + if(error == 0) + error = 1; + } + } + // if every number is received, print success + if(error == 0) + System.out.println("All numbers received successfully :)"); + + error = 0; + } + } +}