UE22
This commit is contained in:
121
src/UE22_200525_MatheServer/MatheClient.java
Normal file
121
src/UE22_200525_MatheServer/MatheClient.java
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
package UE22_200525_MatheServer;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class MatheClient extends Thread {
|
||||||
|
Socket client;
|
||||||
|
private int anzCals = 10;
|
||||||
|
private int level = 1;
|
||||||
|
|
||||||
|
public MatheClient(Socket s) {
|
||||||
|
client = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int randomInRange(int min, int max) {
|
||||||
|
return (int) (Math.random() * (max - min)) + min;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()))) {
|
||||||
|
wr.write("Willkommen beim Mathe-Quiz\n\rWie heftig hättest du es gerne?");
|
||||||
|
wr.flush();
|
||||||
|
while (true) {
|
||||||
|
int level;
|
||||||
|
wr.write("\n\rBitte gibt eine Zahl zwischen 1 und 3 ein. (Leer für 1): ");
|
||||||
|
wr.flush();
|
||||||
|
try {
|
||||||
|
String input = br.readLine();
|
||||||
|
if (input == null || input.trim().isEmpty()) break;
|
||||||
|
level = Integer.parseInt(input);
|
||||||
|
} catch (Exception _) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (level < 1 || level > 3) continue;
|
||||||
|
this.level = level;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
while (true) {
|
||||||
|
int anz;
|
||||||
|
wr.write("\n\rWie viele Fragen meochtest du loesen (1 - 999) (Leer für 10): ");
|
||||||
|
wr.flush();
|
||||||
|
try {
|
||||||
|
String input = br.readLine();
|
||||||
|
if (input == null || input.trim().isEmpty()) break;
|
||||||
|
anz = Integer.parseInt(input);
|
||||||
|
} catch (Exception _) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (anz < 1 || anz > 999) continue;
|
||||||
|
this.anzCals = anz;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= anzCals; i++) {
|
||||||
|
int type = randomInRange(1, 4), solution, a, b;
|
||||||
|
String operator;
|
||||||
|
switch (level) {
|
||||||
|
case 1 -> {
|
||||||
|
a = randomInRange(1, 10);
|
||||||
|
b = randomInRange(1, 10);
|
||||||
|
}
|
||||||
|
case 2 -> {
|
||||||
|
a = randomInRange(-100, 100);
|
||||||
|
b = randomInRange(-100, 100);
|
||||||
|
}
|
||||||
|
case 3 -> {
|
||||||
|
a = randomInRange(-10_000, 10_000);
|
||||||
|
b = randomInRange(-10_000, 10_000);
|
||||||
|
}
|
||||||
|
default -> throw new IllegalStateException("Unexpected value: " + level);
|
||||||
|
}
|
||||||
|
switch (type) {
|
||||||
|
case 1 -> {
|
||||||
|
operator = " + ";
|
||||||
|
solution = a + b;
|
||||||
|
}
|
||||||
|
case 2 -> {
|
||||||
|
operator = " - ";
|
||||||
|
solution = a - b;
|
||||||
|
}
|
||||||
|
case 3 -> {
|
||||||
|
operator = " * ";
|
||||||
|
solution = a * b;
|
||||||
|
}
|
||||||
|
case 4 -> {
|
||||||
|
operator = " / ";
|
||||||
|
solution = a / (b == 0 ? 1 : b);
|
||||||
|
}
|
||||||
|
default -> throw new IllegalStateException("Unexpected value: " + type);
|
||||||
|
}
|
||||||
|
String question = "(Level " + level + ") Frage " + i + ": " + a + operator + b + " = ";
|
||||||
|
wr.write(question);
|
||||||
|
wr.flush();
|
||||||
|
while (true) {
|
||||||
|
String message = "\n\rFalsch :( .. versuche es noch einmal\n\n\r" + question;
|
||||||
|
try {
|
||||||
|
String input = br.readLine();
|
||||||
|
if (input == null || input.trim().isEmpty() || Integer.parseInt(input) != solution) {
|
||||||
|
wr.write(message);
|
||||||
|
wr.flush();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} catch (Exception _) {
|
||||||
|
wr.write(message);
|
||||||
|
wr.flush();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
wr.write("\n\rrichtig :)\n\n\r");
|
||||||
|
wr.flush();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wr.write("\n\n\n\rHerzlichen Glückwunsch du hast es geschafft!!\n\n\rENDE");
|
||||||
|
wr.flush();
|
||||||
|
} catch (Exception _) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
src/UE22_200525_MatheServer/MatheServer.java
Normal file
18
src/UE22_200525_MatheServer/MatheServer.java
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package UE22_200525_MatheServer;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class MatheServer {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
try (ServerSocket server = new ServerSocket(1000)) {
|
||||||
|
while (true) {
|
||||||
|
System.out.println("Ready to connect");
|
||||||
|
Socket client = server.accept();
|
||||||
|
new MatheClient(client).start();
|
||||||
|
}
|
||||||
|
} catch (IOException _) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
src/UE22_200525_MatheServer/SEW3 UE22 2024 MatheServer.pdf
Normal file
BIN
src/UE22_200525_MatheServer/SEW3 UE22 2024 MatheServer.pdf
Normal file
Binary file not shown.
50
src/UE22_200525_MatheServer/TCPServer/ClientHandler.java
Normal file
50
src/UE22_200525_MatheServer/TCPServer/ClientHandler.java
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
package UE22_200525_MatheServer.TCPServer;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class ClientHandler extends Thread {
|
||||||
|
|
||||||
|
Socket client;
|
||||||
|
|
||||||
|
public ClientHandler(Socket s) {
|
||||||
|
client = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try (
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||||
|
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()))
|
||||||
|
) {
|
||||||
|
System.out.println("connected to " + client.getRemoteSocketAddress());
|
||||||
|
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
wr.write("Bitte rufen\n\r");
|
||||||
|
wr.flush();
|
||||||
|
|
||||||
|
String answer = br.readLine();
|
||||||
|
|
||||||
|
if (answer == null || answer.trim().isEmpty()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
wr.write(answer + "\r\n");
|
||||||
|
wr.flush();
|
||||||
|
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IOException io) {
|
||||||
|
io.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
33
src/UE22_200525_MatheServer/TCPServer/TCPServer1.java
Normal file
33
src/UE22_200525_MatheServer/TCPServer/TCPServer1.java
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package THServer;
|
||||||
|
|
||||||
|
import java.awt.image.ImagingOpException;
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class TCPServer1 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
try (ServerSocket server = new ServerSocket(22333))
|
||||||
|
{
|
||||||
|
System.out.println("ready to connect");
|
||||||
|
Socket client = server.accept();
|
||||||
|
System.out.println("connected to " + client.getRemoteSocketAddress());
|
||||||
|
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||||
|
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
|
||||||
|
|
||||||
|
wr.write("Herzlich Willkommen, ihr Name ?\n\r");
|
||||||
|
wr.flush();
|
||||||
|
String answer = br.readLine();
|
||||||
|
System.out.println(answer);
|
||||||
|
|
||||||
|
br.close();
|
||||||
|
wr.close();
|
||||||
|
}
|
||||||
|
catch (IOException io) {
|
||||||
|
io.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
55
src/UE22_200525_MatheServer/TCPServer/TCPServer2.java
Normal file
55
src/UE22_200525_MatheServer/TCPServer/TCPServer2.java
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
package UE22_200525_MatheServer.TCPServer;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class TCPServer2 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
try (ServerSocket server = new ServerSocket(22333)) {
|
||||||
|
while (true) {
|
||||||
|
System.out.println("ready to connect");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try (Socket client = server.accept();
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||||
|
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()))
|
||||||
|
) {
|
||||||
|
System.out.println("connected to " + client.getRemoteSocketAddress());
|
||||||
|
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
wr.write("Bitte rufen\n\r");
|
||||||
|
wr.flush();
|
||||||
|
|
||||||
|
String answer = br.readLine();
|
||||||
|
|
||||||
|
if (answer == null || answer.trim().isEmpty()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
wr.write(answer);
|
||||||
|
wr.flush();
|
||||||
|
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IOException io) {
|
||||||
|
io.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IOException io) {
|
||||||
|
io.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
src/UE22_200525_MatheServer/TCPServer/TCPServer3.java
Normal file
25
src/UE22_200525_MatheServer/TCPServer/TCPServer3.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package UE22_200525_MatheServer.TCPServer;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class TCPServer3 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
try (ServerSocket server = new ServerSocket(22333)) {
|
||||||
|
while (true) {
|
||||||
|
System.out.println("ready to connect");
|
||||||
|
|
||||||
|
|
||||||
|
Socket client = server.accept();
|
||||||
|
|
||||||
|
new ClientHandler(client).start();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IOException io) {
|
||||||
|
io.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user