Skip to content
Snippets Groups Projects
Commit bb3b32fb authored by Dennis Eisold's avatar Dennis Eisold
Browse files

Merge branch 'master' into 'master'

Master

See merge request alfatrainingkurse/java/enigma!83
parents 499cd02e 6859fbe9
No related branches found
No related tags found
No related merge requests found
package projekt.enigma; package projekt.enigma;
import projekt.enigma.threads.ThreadApp;
import projekt.enigma.threads.ThreadFunkraum;
import java.sql.SQLException; import java.sql.SQLException;
public class Main { public class Main {
public static void main(String[] args) throws SQLException { public static void main(String[] args) throws SQLException {
App.main(args); Thread app = new Thread(new ThreadApp());
// Thread funk = new Thread(new ThreadFunkraum());
app.start();
// funk.start();
} }
} }
...@@ -19,24 +19,25 @@ import java.util.ArrayList; ...@@ -19,24 +19,25 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* Hier sitzt der Funker * Hier sitzt der Funker.
* Der Funkraum kann Funksprüche empfangen und senden. * Der Funkraum kann Funksprueche empfangen und senden.
* Hierfür wird eine Verbindung zu einem externen Service aufgebaut. * Hierfuer wird eine Verbindung zu einem externen Service aufgebaut.
* Dieser Servive erwartet die Nachrichten im JSON Format. Dazu wird ein k als Kenngruppe * Dieser Servive erwartet die Nachrichten im JSON Format. Dazu wird ein k als Kenngruppe
* (Benutzername) übergeben und falls eine Nachricht gesendet werden soll, zusätzlich ein m mit der Nachricht. * (Benutzername) uebergeben und falls eine Nachricht gesendet werden soll, zusätzlich ein m mit der Nachricht.
* Beides wird als String gesendet. * Beides wird als String gesendet.
*/ */
class Funkraum { public class Funkraum {
/** /**
* Zum Empfangen liefert der Server, anstatt der Kenngruppe (k) den Empfangstag der Nachricht mit damit man * Zum Empfangen liefert der Server, anstatt der Kenngruppe (k), den Empfangstag (t) der Nachricht mit, damit man
* die Grundeinstellungen aus dem Codebuch, für diesen Tag, raussuchen kann. * die Grundeinstellungen aus dem Codebuch, für diesen Tag, raussuchen kann.
* {'m': 'Hello world', 't': '26'} * {'m': 'Hello world', 't': '26'}
* *
* @param kenngruppe : String : Kenngruppe dieser Engiam * @param kenngruppe : String : Kenngruppe dieser Enigma
* @return String[] : String Array wobei Index 0 dem Empfangstag entspricht und index 1 der empfangenen Nachricht * @return funkspruch : String[] : String Array wobei Index 0 dem Empfangstag entspricht und Index 1
* der empfangenen Nachricht
*/ */
String[] empfangeFunkspruch(String kenngruppe) { public String[] empfangeFunkspruch(String kenngruppe) {
String[] funkspruch = new String[2]; String[] funkspruch = new String[2];
HttpClient httpclient = HttpClients.createDefault(); HttpClient httpclient = HttpClients.createDefault();
...@@ -73,22 +74,21 @@ class Funkraum { ...@@ -73,22 +74,21 @@ class Funkraum {
/** /**
* Dem Service senden wir unsere Nachricht als POST Parameter (m) und unsere Kenngruppe (k). * Dem Service senden wir unsere Nachricht als POST Parameter (m) und unsere Kenngruppe (k).
* Dieser nimmt die Daten entgegeb und hierlerlegt sie auf seinem Stapel (Datenbank) von dem die Nachrichten * Dieser nimmt die Daten entgegen und hierlerlegt sie auf seinem Stapel (Datenbank) von dem die Nachrichten
* irgendwann, auf Anfrage, wieder abgerufen werden können. * irgendwann, auf Anfrage, wieder abgerufen werden koennen.
* <p> * <p>
* Darauf antworter der Server dann mit einem JSON Object in dem das Ergebnis der Anfrage zu sehen ist. * Darauf antwortet der Server mit einem JSON Object in dem das Ergebnis der Anfrage zu sehen ist.
* {'result': 200} * {'result': 200}
* <p> * <p>
* Die 200 heißt hier das alles erfolgreich durchgeführt werden konnte. Steht hier etwas anderes, ist ein Fehler * Die 200 heißt hier, dass alles erfolgreich durchgefuehrt werden konnte. Steht hier etwas anderes, ist ein Fehler
* aufgetreten und die Anfrage war nicht erfolgreich. * aufgetreten und die Anfrage war nicht erfolgreich.
* In letzterem Fall sollte eine Meldung an den Benutzer ausgegeben werden und ggF später erneut versucht. * In letzterem Fall sollte eine Meldung an den Benutzer ausgegeben werden und ggf spaeter erneut versucht werden.
* *
* @param funkspruch : String : Der zu sendede Funkspruch * @param funkspruch : String : Der zu sendende Funkspruch
* @param kenngruppe : String : Die Kenngruppe dieser Engima * @param kenngruppe : String : Die Kenngruppe dieser Engima
* @throws IOException : Exception : Funkspruch konnte nicht gesendet werden * @throws IOException : Exception : Funkspruch konnte nicht gesendet werden
*/ */
void sendeFunkspruch(String funkspruch, String kenngruppe) throws HttpException, IOException { public void sendeFunkspruch(String funkspruch, String kenngruppe) throws HttpException, IOException {
HttpClient httpclient = HttpClients.createDefault(); HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("https://enigma.itstall.de/"); HttpPost httppost = new HttpPost("https://enigma.itstall.de/");
...@@ -106,9 +106,9 @@ class Funkraum { ...@@ -106,9 +106,9 @@ class Funkraum {
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent())); BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
JSONObject result = new JSONObject(reader.readLine()); JSONObject result = new JSONObject(reader.readLine());
if (result.getInt("result") != 200) { if (result.getInt("result") != 200) {
throw new HttpException("Der andere Funker mag deine Nachricht nicht. Rüge ihn wenn du ihn wieder siehst..."); throw new HttpException("Der andere Funker mag deine Nachricht nicht. " +
"Rüge ihn wenn du ihn wieder siehst...");
} }
} }
} }
} }
package projekt.enigma.threads;
import projekt.enigma.App;
import java.sql.SQLException;
public class ThreadApp implements Runnable {
private String[] args;
@Override
public void run() {
System.out.println("ThreadApp" + Thread.currentThread());
App app = new App();
app.main(args);
}
}
package projekt.enigma.threads;
import org.apache.http.HttpException;
import projekt.enigma.model.Codierer;
import projekt.enigma.model.Funkraum;
import java.io.IOException;
public class ThreadFunkraum implements Runnable {
String kenngruppe = new Codierer().getKenngruppe();
// String funkspruch;
@Override
public void run() {
Funkraum funkraum = new Funkraum();
System.out.println("Threadfunkraum" + Thread.currentThread());
funkraum.empfangeFunkspruch(kenngruppe);
// try {
// funkraum.sendeFunkspruch(funkspruch, kenngruppe);
// } catch (HttpException he) {
// System.err.println("Error");
// } catch (IOException io) {
// System.err.println("Error");
// }
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment