From 390c60695c118e65d02caebd0f205a06586989d5 Mon Sep 17 00:00:00 2001
From: Dimitri Tayo Fongang Wembe <dimitri.wembe.tayo@fau.de>
Date: Fri, 26 May 2023 21:23:14 +0200
Subject: [PATCH] add Team files

---
 Teams/TCPClient.java  |  36 +++++++++++++++++++++++++++++++
 Teams/TCPServer.java  |  48 +++++++++++++++++++++++++++++++++++++++++
 Teams/UDPClient.class | Bin 0 -> 1310 bytes
 Teams/UDPClient.java  |  40 ++++++++++++++++++++++++++++++++++
 Teams/UDPServer.class | Bin 0 -> 1757 bytes
 Teams/UDPServer.java  |  49 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 173 insertions(+)
 create mode 100644 Teams/TCPClient.java
 create mode 100644 Teams/TCPServer.java
 create mode 100644 Teams/UDPClient.class
 create mode 100644 Teams/UDPClient.java
 create mode 100644 Teams/UDPServer.class
 create mode 100644 Teams/UDPServer.java

diff --git a/Teams/TCPClient.java b/Teams/TCPClient.java
new file mode 100644
index 0000000..a1534c9
--- /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 0000000..4c2ff1e
--- /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
GIT binary patch
literal 1310
zcmX^0Z`VEs1_pD6AT9<`1|?1gWd;=v230NwH3oGq1`P&HE(Uo9Ep`TNE(Uf6C1wVG
zCkHMD9R^(xp$8)L*%=JD7<d^BK?;mOgfRz$2|I%+7lROk89ReHJA(xy1Dj1|US^3M
zBLlOBW*8#_i*tTTDkB5GPi9`KUukYqYEejHQcfx(150jVW*#Ghm`1cuR$^JAeokUu
zx_)p;QD$DcHAo|Ga7kivwr^qqSUo#~B|C!^JA*YN16Oc<X;E^jTPDa9zEGC{=bX&c
zyb?W-DLf2f4C3qzHarZr40enR4goo-iN&c3A(aKG3YmEd#i>PQsYQ8-xv2^oo&ma!
zDMhKp#hQtEDGI@0nS%VH5{1NKg~X!t(%jU%l45oSdmaV{21j-VCmsf81{WR%R|Ypm
z262#G`gy4(`YwqjiRnd&xxx9#*{LP$4DLJ(9t@s53|=6@o52U0+JHomT98wHc^Lc{
z{COAx7{nPFWP?-lQWWyQVN|S8T$-GmT3nn~nv+whV5O<R$RG^1G&5h{)8DlsIkli9
zGe3`qArPdM6CMhT3<6+f;L!9>%1TWxVPp`-62vG9A;HebAOhA4@|R~`YKdbCIDAl5
zRu-3}<}xxc=a-f+GKfN=E;C<0peQr1B)Fs~H8Iy3$*D-fj124rAVoQOj0~b05RG70
zLM#Wzxggknu&8HVNosm(5hDXfL1IyHs%IX^I&9iJ85ua!Q%jsG{StFi85y*&se#yr
z<}bKA^D^`GohnOGol4Wvz&0l4<m4wOmZUN=NN9L!LN%i(vSwspD<~}iyNWfjs3@_L
zk%2`+GunxfK~^K$$rGw4wL~8&Agw(?>6)cDH7|vcK?dqhkfUIU2$C?sA;FrQlV1$V
zH{dV>XN8cW#N<>4MFtTDQ3eoTVqgTNb_PZU2?hoRSq4T1Mg|53R;}#}j2jsk7#JBO
z85kJYz=G@yoD5P7(h#MLTnuas91IK$#ajDV=QHqZVqg+t-p0VPQH$BgM~lU12Lr3E
z_6`O%zugS%k=q$KtXP=MSVdWdI2SYMvF~8u5@p@Sz`c!u$BJz?18<}xn<U#lU776+
zd{*p|ERyWo82DRQ8JGXRD9N&oK>%d7;5G)9<qRBty4x6pH!?6XNHJtF<T3~`Fo7ND
z#URAMzyNX*Hv=C74+B2~KZ7uX0D}~R2!lL>7=s3bB!dxyG=l?!EJFZ;JVQ8xBttBN
z5<?P$GD8-F8bdCF3PT=)Dnk*2I)e-Y1A{IDEB}86X$CfS23d9nIYxE{d3FYNMh1po
d42J(1_!*d?;tY)J3_>gnj0_443=B*RiU56GGVTBX

literal 0
HcmV?d00001

diff --git a/Teams/UDPClient.java b/Teams/UDPClient.java
new file mode 100644
index 0000000..7e89f76
--- /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
GIT binary patch
literal 1757
zcmX^0Z`VEs1_pD6BrXOK1|?1gWd;=v230NwH3oGq1`P&Hb_Ojj1~vw54h9`|23;-&
zP6j<@27V_8kf1(@YXBk)xfqNXj6sBn5Ca2)1qXvAJA)NFgEb=qn@wh3W{Djm1G9!^
z7$XCVbAC!HBLlxrW?rgaX>L+#QAlD^PAVe<OKxIj9wUR8Mzl{>Vp*boPGVlVesD=q
zW?s5ANF#4>Nn&!gZ(;#hJv)O9JA*AF1D9(>a%w?IW`15VJA)k~16Oc<X;E^jTPDaz
zzEGEd;MAhB)FM5Qkvt5d3}WmI_B;#@433NpN&z{kiN&c3>6vAz3J_%l`9&oPiNy+u
zMd_uvsd**r3{E@@&I~T>46Zy3ZVc{>4B{Yz^z%|n^j#8564Q$kbA$7fvr|hzW_vI)
z_;6`yDHN9^7L_OzgDqCj(o*0mPs}XI%u82D%P&$WNCYX@)6-MX$jdKRsLU@_D9*?)
z%}If3E6GSzNY2Sj%`4HwW?KMQJIFRq9tJN4Zyp98245ZqKL&qxh5#OhK!zY5hF}JN
zMg{?={QQ#QlA^={-_(+f{FGvTHii%mhEN`cFotkO1{KGg9ECh^_!lb_r6#9lmZhdB
z6qhC^rxq8dmFDDBDp+YUGH}8}kdZ+E>~(Oo_$OthCYLZW2xEyWMh2#6Cq@Qgu<Fcw
zeNTUQ6rq?ATv=R_n#;(*oL^eP$RG-d^vrzyfTGO2lHih})WlqCBx8_-85!6MK#Fqm
z7#T!0AR58WLP{-yVC%u6o_Qsy>8VAG3>*cCMa8L}c_8bsY4c=cVA1ddr8PE<XeTg(
z9U3%@3^Gt1$Waf83~=gXPfslYr3jD_njrskrl*$pq~@iUWPnq?C(J8(nfdxol_jZ8
zrD<s(N3oO_B^EF;NP}$j)P#5jRShT)rKgs7=9O?UL@-1$GHAIL73CLMDWp~uq$Zc7
zra<G-N`X;FA*r+k9-USSjEoH8xry1S&iQ%Ci6!BgB^l27dBr7(c_qc5oaPC$5FAd>
z&|_za0;Q2SMg|o`7-r^`<!7ftvm?Ybx5VU<{Gv*Bh6F|iHlO_b?9u{81|HA6ywoD+
zoW$bd)M7@48PGrjn-4Vuk{mq}^HOqBi&Y>Rts(vfD}y=%Nd!e>NM%7P7UjqZ5t2Hs
zp@9iD6l#QXVopwQW=X0wJ3}HPgDQsqu(^$qK@Pt<21N#81`!4jU}9hdl`#yA4B`w7
z46+Q242%p646It)85lP*FfcGONH8!kuz>~H7&sXu8KfAPKuQ^v8CV!N7#J9)XzgQ}
z&%m>Zfk}vY8w1NmEoP$~46HW08Q3DFw==N&vhU&WV>V*}$#ZODVA;*U8L6wgZ#x5*
z6)UqDn<$$Q_hJSI9ZA-03_Ku$ml;Iz?O@>F#vowEF3K*-HlIOi69bbdn<)D(20;df
zZ44};EVCHcSj<>j*cg}p-w)z(gUlD&#=ydC#<KkXR0akHCa}xH7(^Ku7&sZ&7`Pbt
z7`Peu8F(4Q7z7yP8H5>>8AKV>7$h0=7-Sf%7~~jS7!(-17!(;|8B`cj7*rXG8Ppgm
z7}Oc68RQrm8MGPN7<3r=81xt>GUzi%GcYhHGO+RgXAomxWoM9KWM^PwXOLxNVE79v
zusIoRe=)G~Fvu}5Ft9K%GRQM9Gbk{C90f9-fq{#Gks+EPo*{-olEIXLfq{d8k-?0C
Hk-;1Q0GqlI

literal 0
HcmV?d00001

diff --git a/Teams/UDPServer.java b/Teams/UDPServer.java
new file mode 100644
index 0000000..416b123
--- /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;
+        }
+    }
+}
-- 
GitLab