From a6a8c6d8c1a52231db2a85acb4892cc4c9a3ff03 Mon Sep 17 00:00:00 2001 From: Thomas Schaller Date: Sun, 29 Dec 2024 12:45:17 +0100 Subject: [PATCH] =?UTF-8?q?Subtrees=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gitignore | 5 + .../Base64.java | 117 ++++ .../BuchstabeElement.java | 36 ++ .../ChatClient.jar | Bin 0 -> 53397 bytes .../ChatClient.java | 555 ++++++++++++++++++ .../ChatServerGUI.jar | Bin 0 -> 53401 bytes .../ChatServerGUI.java | 252 ++++++++ .../Element.java | 54 ++ .../ElementPanel.java | 34 ++ .../JEClasses.jar | Bin 0 -> 105177 bytes .../Message.java | 69 +++ .../MessageChoosePanel.java | 67 +++ .../MessagePanel.java | 62 ++ .../MessagePopup.java | 67 +++ .../MyServer.java | 98 ++++ .../MyServerSocketListener.java | 15 + .../MySocket.java | 196 +++++++ .../MySocketListener.java | 16 + .../MyTextFieldDocument.java | 52 ++ .../Nachricht.java | 119 ++++ .../ProtokollErstellen.jar | Bin 0 -> 53402 bytes .../ProtokollErstellen.java | 434 ++++++++++++++ .../ProtokollPopup.java | 65 ++ .../TextBubbleBorder.java | 127 ++++ .../TextElement.java | 31 + .../XMLDokument.java | 213 +++++++ .../ZifferElement.java | 36 ++ .../readme.adoc | 11 + 28 files changed, 2731 insertions(+) create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/.gitignore create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/Base64.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/BuchstabeElement.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ChatClient.jar create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ChatClient.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.jar create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/Element.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ElementPanel.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/JEClasses.jar create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/Message.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MessageChoosePanel.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MessagePanel.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MessagePopup.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MyServer.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MyServerSocketListener.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MySocket.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MySocketListener.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/MyTextFieldDocument.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/Nachricht.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ProtokollErstellen.jar create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ProtokollErstellen.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ProtokollPopup.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/TextBubbleBorder.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/TextElement.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/XMLDokument.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/ZifferElement.java create mode 100644 Software/run_n_imp8_kommunikationsprotokoll/readme.adoc diff --git a/Software/run_n_imp8_kommunikationsprotokoll/.gitignore b/Software/run_n_imp8_kommunikationsprotokoll/.gitignore new file mode 100644 index 0000000..c1f4551 --- /dev/null +++ b/Software/run_n_imp8_kommunikationsprotokoll/.gitignore @@ -0,0 +1,5 @@ +*.class +*.ctxt +*.sh +repo.adoc +*.~lock diff --git a/Software/run_n_imp8_kommunikationsprotokoll/Base64.java b/Software/run_n_imp8_kommunikationsprotokoll/Base64.java new file mode 100644 index 0000000..bb85f31 --- /dev/null +++ b/Software/run_n_imp8_kommunikationsprotokoll/Base64.java @@ -0,0 +1,117 @@ +import java.io.ByteArrayOutputStream; +import java.util.Random; +import java.util.Arrays; +import javax.xml.bind.DatatypeConverter; + +/** + * + * Hilfsklasse zur Konvertierung in Base64 von Strings + * @author Emil Hernvall (https://gist.github.com/emilhernvall/953733) + */ + +public class Base64 +{ + public static String encode(String text) + { + byte[] data = text.getBytes(); + return encode(data); + } + + public static String encode(byte[] data) { + char[] tbl = { + 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', + 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', + 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', + 'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' }; + + StringBuilder buffer = new StringBuilder(); + int pad = 0; + for (int i = 0; i < data.length; i += 3) { + + int b = ((data[i] & 0xFF) << 16) & 0xFFFFFF; + if (i + 1 < data.length) { + b |= (data[i+1] & 0xFF) << 8; + } else { + pad++; + } + if (i + 2 < data.length) { + b |= (data[i+2] & 0xFF); + } else { + pad++; + } + + for (int j = 0; j < 4 - pad; j++) { + int c = (b & 0xFC0000) >> 18; + buffer.append(tbl[c]); + b <<= 6; + } + } + for (int j = 0; j < pad; j++) { + buffer.append("="); + } + + return buffer.toString(); + } + + + public static String decodeStr(String data) + { + return new String(decode(data)); + } + + public static byte[] decode(String data) + { + int[] tbl = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; + byte[] bytes = data.getBytes(); + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + for (int i = 0; i < bytes.length; ) { + int b = 0; + if (tbl[bytes[i]] != -1) { + b = (tbl[bytes[i]] & 0xFF) << 18; + } + // skip unknown characters + else { + i++; + continue; + } + + int num = 0; + if (i + 1 < bytes.length && tbl[bytes[i+1]] != -1) { + b = b | ((tbl[bytes[i+1]] & 0xFF) << 12); + num++; + } + if (i + 2 < bytes.length && tbl[bytes[i+2]] != -1) { + b = b | ((tbl[bytes[i+2]] & 0xFF) << 6); + num++; + } + if (i + 3 < bytes.length && tbl[bytes[i+3]] != -1) { + b = b | (tbl[bytes[i+3]] & 0xFF); + num++; + } + + while (num > 0) { + int c = (b & 0xFF0000) >> 16; + buffer.write((char)c); + b <<= 8; + num--; + } + i += 4; + } + return buffer.toByteArray(); + } +} diff --git a/Software/run_n_imp8_kommunikationsprotokoll/BuchstabeElement.java b/Software/run_n_imp8_kommunikationsprotokoll/BuchstabeElement.java new file mode 100644 index 0000000..844f65e --- /dev/null +++ b/Software/run_n_imp8_kommunikationsprotokoll/BuchstabeElement.java @@ -0,0 +1,36 @@ +import java.awt.Color; + +/** + * + * Hilfsklasse für ein Buchstaben-Element (varibaler Buchstabe) + * + * + * @version 1.0 vom 13.04.2018 + * @author Thomas Schaller + */ + +public class BuchstabeElement extends Element { + public BuchstabeElement() { + super(); + super.setText("A"); + } + + + public void setText(String t) { + super.setText("A"); // kann man nicht ändern + } + + + public Color getColor() { + return Color.blue; + } + + public Element getCopy() { + BuchstabeElement e = new BuchstabeElement(); + return e; + } + + public String getXMLIdentifier() { + return "buchstabe"; + } +} \ No newline at end of file diff --git a/Software/run_n_imp8_kommunikationsprotokoll/ChatClient.jar b/Software/run_n_imp8_kommunikationsprotokoll/ChatClient.jar new file mode 100644 index 0000000000000000000000000000000000000000..82c025ff1bb26b1e1e3ba404ae2afccaeab0dfac GIT binary patch literal 53397 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 nachrichten; + protected ArrayList kontakte; + protected JLabel jLabel4 = new JLabel(); + protected GridBagLayout gbl; + protected int keyColor = 0; + private JLabel jLabel6 = new JLabel(); + protected JScrollPane jScrollPane2 = new JScrollPane(); + private MessageChoosePanel messageChoosePanel1 = new MessageChoosePanel(); + private JComboBox jCBEmpfaenger = new JComboBox(); + private DefaultComboBoxModel jCBEmpfaengerModel = new DefaultComboBoxModel(); + private JPanel jPNachricht = new JPanel(null, true); + private JLabel jLabel7 = new JLabel(); + private JButton jBSend = new JButton(); + private JButton jBProtokollLaden = new JButton(); + private JComboBox jCBLevel = new JComboBox(); + private DefaultComboBoxModel jCBLevelModel = new DefaultComboBoxModel(); + private JFileChooser chooser = new JFileChooser(); + + // Ende Attribute + + public ChatClient(String title) { + // Frame-Initialisierung + super(title); + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + addWindowListener(new WindowListener() { + public void windowActivated(WindowEvent e) {} + public void windowClosed(WindowEvent e) {} + public void windowClosing(WindowEvent e) { + if (client != null) { + client.sendeNachricht("exit"); + client.trenneVerbindung(); + } // end of if + } + public void windowDeactivated(WindowEvent e) {} + public void windowDeiconified(WindowEvent e) {} + public void windowIconified(WindowEvent e){} + public void windowOpened(WindowEvent e){} + }); + + + int frameWidth = 1081; + int frameHeight = 683; + setSize(frameWidth, frameHeight); + Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); + int x = (d.width - getSize().width) / 2; + int y = (d.height - getSize().height) / 2; + setLocation(x, y); + setResizable(false); + Container cp = getContentPane(); + cp.setLayout(null); + // Anfang Komponenten + // ----------------------- Verbindung zu Server ----------------------------------- + jPanel1.setBounds(8, 8, 600, 41); + jPanel1.setOpaque(false); + jPanel1.setBorder(BorderFactory.createBevelBorder(1, Color.WHITE, Color.DARK_GRAY)); + cp.add(jPanel1); + jLabel2.setBounds(244, 11, 62, 20); + jLabel2.setText("Server"); + jPanel1.add(jLabel2); + jTFName.setBounds(60, 11, 150, 20); + jTFName.setText("anonymous"); + jPanel1.add(jTFName); + jTFAdress.setBounds(292, 11, 150, 20); + jTFAdress.setText("localhost"); + jPanel1.add(jTFAdress); + + jLabel1.setBounds(8, 12, 62, 18); + jLabel1.setText("Name"); + jPanel1.add(jLabel1); + jBVerbinden.setBounds(486, 8, 99, 25); + jBVerbinden.setText("Verbinden"); + jBVerbinden.setMargin(new Insets(2, 2, 2, 2)); + jBVerbinden.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + jBVerbinden_ActionPerformed(evt); + } + }); + jPanel1.add(jBVerbinden); + // -------------------------- Protokoll ------------------------------------------------ + jPanel2.setBounds(618, 8, 430, 41); + jPanel2.setOpaque(false); + jPanel2.setBorder(BorderFactory.createBevelBorder(1, Color.WHITE, Color.DARK_GRAY)); + cp.add(jPanel2); + jCBLevelModel = new DefaultComboBoxModel(); + jCBLevelModel.addElement("Standardmodus (Normal)"); + jCBLevelModel.addElement("Nachrichten können verloren gehen (Mittel)"); + jCBLevelModel.addElement("Nachrichten können Bitfehler haben (Schwer)"); + + jCBLevel.setModel(jCBLevelModel); + jCBLevel.setBounds(10, 8, 280, 30); + jPanel2.add(jCBLevel); + jBProtokollLaden.setBounds(300, 8, 120, 25); + jBProtokollLaden.setText("Protokoll laden"); + jBProtokollLaden.setMargin(new Insets(2, 2, 2, 2)); + jBProtokollLaden.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + jBProtokollLaden_ActionPerformed(evt); + } + }); + jPanel2.add(jBProtokollLaden); + + + jLabel5.setBounds(8, 64, 121, 80); + jLabel5.setText("Nachrichten
laut Protokoll"); + jLabel5.setVerticalAlignment(JLabel.TOP); + cp.add(jLabel5); + + jLabel4.setBounds(8, 296, 86, 20); + jLabel4.setText("Verlauf"); + cp.add(jLabel4); + + jLabel6.setBounds(816, 624, 229, 20); + jLabel6.setText("(cc) 2019, Thomas Schaller, Version 1.2"); + jLabel6.setForeground(Color.GRAY); + cp.add(jLabel6); + messageChoosePanel1.addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent evt) { + messageChoosePanel1_MouseClicked(evt); + } + }); + jScrollPane2 = new JScrollPane(messageChoosePanel1); + jScrollPane2.setBounds(144, 64, 905, 161); + jScrollPane2.setBorder(new javax.swing.border.LineBorder(Color.DARK_GRAY, 1)); + cp.add(jScrollPane2); + + // ------------------- Nachricht ----------------------------- + jLabel7.setBounds(8, 248, 110, 20); + jLabel7.setText("Nachricht"); + cp.add(jLabel7); + + JPanel rahmen = new JPanel(); + rahmen.setBounds(144,240,905,45); + rahmen.setBorder(new javax.swing.border.LineBorder(Color.DARK_GRAY, 1)); + rahmen.setLayout(null); + cp.add(rahmen); + + kontakte = new ArrayList(); + kontakte.add("alle"); + + jCBEmpfaengerModel = new DefaultComboBoxModel(kontakte.toArray()); + jCBEmpfaenger.setModel(jCBEmpfaengerModel); + jCBEmpfaenger.setBounds(624, 8, 161, 30); + rahmen.add(jCBEmpfaenger); + jPNachricht.setBounds(10, 8, 609, 30); + jPNachricht.setOpaque(false); + jPNachricht.setBorder(new LineBorder(Color.BLACK, 0)); + rahmen.add(jPNachricht); + + jBSend.setBounds(800, 8, 99, 30); + jBSend.setText("Abschicken"); + jBSend.setMargin(new Insets(2, 2, 2, 2)); + jBSend.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + jBSend_ActionPerformed(evt); + } + }); + rahmen.add(jBSend); + + jTFNachricht.setBounds(10, 20, 358, 20); + nachrichten = new ArrayList(); + + jp = new JPanel(); + jScrollPane1 = new JScrollPane(jp); + jScrollPane1.setBounds(144, 296, 905, 321); + jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + jScrollPane1.setBorder(new javax.swing.border.LineBorder(Color.DARK_GRAY, 1)); + cp.add(jScrollPane1); + gbl = new GridBagLayout(); + jp.setLayout(gbl); + + this.updateNachrichtenListe(); + // Ende Komponenten + + // File-Choose Dialog + chooser.setCurrentDirectory(new File(".")); + FileFilter filter = new FileNameExtensionFilter("XML-Dateien", "xml"); + // Filter wird unserem JFileChooser hinzugefügt + chooser.addChoosableFileFilter(filter); + chooser.setAcceptAllFileFilterUsed(false); + + + setVisible(true); + } // end of public ChatClient + + // Anfang Methoden + + //-------------------------------------------------------------- XML - Protokoll ------------------------------------------------------------------------- + /** Laden eines vorher definierten Protokolls aus XML-Datei + */ + public void jBProtokollLaden_ActionPerformed(ActionEvent evt) { + // Dialog zum Oeffnen von Dateien anzeigen + int rueckgabeWert =chooser.showDialog(null, "Protokoll laden"); + /* Abfrage, ob auf "Öffnen" geklickt wurde */ + if(rueckgabeWert == JFileChooser.APPROVE_OPTION) + { + readXMLFile( chooser.getSelectedFile().getAbsolutePath()); + } + } + + /** XML-File verarbeiten => Nachrichten hinzufügen + */ + public void readXMLFile(String dateiname) { + XMLDokument f = new XMLDokument(dateiname); + if (!f.getName().equals("protokoll")) return; // ist es wirklich eine Protokolldefinition + jLabel5.setText("Nachrichten
laut Protokoll:
"+f.getAttributwert("name")+""); + boolean ok = f.stepInto(); + messageChoosePanel1.deleteAllMessages(); + while (ok) { + if (f.getName().equals("nachricht")) { // in oberste Ebene müssen "nachrichten" Elemente stehen + Message m = new Message(); + boolean ok2 = f.stepInto(); // eintauchen in nachrichten-Element (kann text, buchstabe und ziffer enthalten) + while (ok2) { // gibt es weitere Unterelemente? + if(f.getName().equals("text")) { + TextElement t = new TextElement(); + t.setText(f.getInhalt()); + m.add(t); + } + if(f.getName().equals("buchstabe")) { + m.add(new BuchstabeElement()); + } + if(f.getName().equals("ziffer")) { + m.add(new ZifferElement()); + } + ok2 = f.step(); // nächstes Unterelement + + } // end of while + f.stepOut(); // wieder auf Nachrichtenebene zurück + messageChoosePanel1.add(m); + } + ok = f.step(); + } // end of while + + messageChoosePanel1.invalidate(); + messageChoosePanel1.repaint(); + } + + // --------------------------------------------------------- Client-Server Verbindung --------------------------------------------------- + /** Methode zum Verbinden mit einem Server + */ + public void jBVerbinden_ActionPerformed(ActionEvent evt) { + String a = jTFAdress.getText(); + int p = 44444; + if (client != null && client.isAktiv()) { + jTFName.setEnabled(true); + jTFAdress.setEnabled(true); + + jBVerbinden.setText("Verbinden"); + client.sendeNachricht("exit"); + client.trenneVerbindung(); + } else { + client = new MySocket(a, p, this); + if (client.isAktiv()) { + jTFName.setEnabled(false); + jTFAdress.setEnabled(false); + jBVerbinden.setText("Trennen"); + client.sendeNachricht(("user:"+jTFName.getText()+":alle")); + } + } // end of if-else + } // end of jBVerbinden_ActionPerformed + /** Neuer Client macht nichts + */ + public void neuerClient(MySocket client) { + } + + public void nachrichtEmpfangen(MySocket client) { + String s = client.holeNachricht(); + String[] ss = s.split(":"); + + if (ss[0].equals("user")) { + kontakte.add(ss[1]); + Nachricht n = new Nachricht("Server","alle","Neuer User: "+ss[1]); + n.setSended(true); + nachrichten.add(0,n); + this.updateNachrichtenListe(); + DefaultComboBoxModel m = new DefaultComboBoxModel(kontakte.toArray()); + jCBEmpfaenger.setModel(m); + } + if(ss[0].equals("mess")) { + Nachricht n = new Nachricht(ss[1],ss[2],Base64.decode(ss[3])); + nachrichten.add(0,n); + this.updateNachrichtenListe(); + + } // end of if + } + + public void verbindungBeendet(MySocket client) { + jTFName.setEnabled(true); + jTFAdress.setEnabled(true); + jBVerbinden.setText("Verbinden"); + client = null; + } + + /** Aktualisiert die empfangenen Nachrichten + */ + public void updateNachrichtenListe() { + + jp.setBounds(jScrollPane1.getViewport().getBounds()); + GridBagConstraints c = new GridBagConstraints(); + while (jp.getComponentCount()>1) { + jp.remove(1); + } // end of while + jp.removeAll(); + + + c.weightx=0; + c.gridwidth=1; + int xx = 0; + JLabel name = null; + for (Nachricht n : nachrichten) { + + name = new JLabel(); + name.setText("Von "+n.getAbsender()+""); + name.setBorder(BorderFactory.createBevelBorder(0)); + name.setBackground(new Color(250,255,200)); + name.setOpaque(true); + c.gridx=0; c.gridy = xx; + c.fill = GridBagConstraints.BOTH; + jp.add(name,c); + + JPanel nnn = new JPanel(); + nnn.setLayout(new GridBagLayout()); + nnn.setBorder(BorderFactory.createBevelBorder(0)); + nnn.setBackground(new Color(250,255,200)); + nnn.setOpaque(true); + + + JLabel nachricht = new JLabel(); + if (n.getInhaltString().trim().length()>65) { + nachricht.setText(""+n.getInhaltString().trim().substring(0,62)+"..."); + } else { + nachricht.setText(""+n.getInhaltString().trim()+""); + } // end of if-else + + c.gridx=0; c.gridy = 0; + c.weightx=1.0; c.weighty= 0; + + nnn.add(nachricht,c); + + c.gridx=1; c.gridy = xx; + c.weightx = 1.0; + jp.add(nnn,c); + + JPanel abspanel = new JPanel(); + abspanel.setPreferredSize(new Dimension(150,HOEHE)); + abspanel.setBorder(BorderFactory.createBevelBorder(0)); + abspanel.setBackground(new Color(250,255,200)); + abspanel.setOpaque(true); + abspanel.setLayout(new FlowLayout()); + abspanel.add(new JLabel("an "+n.getEmpfaenger())); + + c.gridx=2; c.gridy = xx; + c.weightx = 0.0; + jp.add(abspanel,c); + xx++; + } + JPanel dummy = new JPanel(); + dummy.setBorder(BorderFactory.createBevelBorder(0)); + dummy.setLayout(null); + dummy.setBackground(new Color(250,255,200)); + dummy.setOpaque(true); + dummy.setPreferredSize(new Dimension(150,HOEHE)); + + c.gridx=0; c.gridy = xx; + c.gridwidth=4; + c.fill = GridBagConstraints.BOTH; + c.weightx = 1.0; + c.weighty = 1.0; + jp.add(dummy,c); + + jp.revalidate(); + jp.repaint(); + } + + /** Nachricht in Nachrichtenvorrat ausgewählt, im Sendenfenster wird eine Nachricht vorbereitet (incl. Eingabefelder) + */ + public void messageChoosePanel1_MouseClicked(MouseEvent evt) { + Message m = messageChoosePanel1.getElement(evt); + if (m==null) { + // System.out.println("nicht getroffen"); + } else { + jPNachricht.setLayout(new BoxLayout(jPNachricht, BoxLayout.LINE_AXIS)); + JLabel l = new JLabel(); + l.setText(""); + l.setBounds(10,2,2,20); + l.setOpaque(true); + jPNachricht.add(l); + + JPanel ml = new JPanel(); + + Font fo = new Font("SansSerif", Font.BOLD, 12); + ml.setBackground(new Color(50,200,50)); + ml.setBorder(new TextBubbleBorder(ml.getBackground(),2,6,0)); + ml.setOpaque(true); + + FlowLayout flow = new FlowLayout(); + flow.setHgap(3); + flow.setVgap(2); + flow.setAlignment(FlowLayout.LEFT ); + ml.setLayout(flow); + int breite = 10; + for (int i=0;i0.6) { // Übertragungsfehler einbauen + int pos = r.nextInt(text.length()); + char c = text.charAt(pos); + if (c >= 'A' && c <= 'Z') { + c = (char) (r.nextInt(26)+65); + } + if (c >= 'a' && c <= 'z') { + c = (char) (r.nextInt(26)+97); + } + if (c >= '0' && c <= '9') { + c = (char) (r.nextInt(10)+48); + } + // end of if-else + text_uebertragen = text.substring(0,pos)+ c+text.substring(pos+1); + } else { + text_uebertragen = text; + } // end of if-else + + Nachricht n = new Nachricht(jTFName.getText(), (String) jCBEmpfaenger.getSelectedItem(), text); + Nachricht n2 = new Nachricht(jTFName.getText(), (String) jCBEmpfaenger.getSelectedItem(), text_uebertragen); + String b = "mess:"+n2.getAbsender()+":"+n2.getEmpfaenger()+":"+Base64.encode(n2.getInhalt()); + + if (level < 1 || r.nextDouble() < 0.75) { // Nachricht kann verloren gehen bei Level 2 + client.sendeNachricht(b); + } + nachrichten.add(0,n); + + this.updateNachrichtenListe(); + } else { + jTFName.setEnabled(true); + jTFAdress.setEnabled(true); + jBVerbinden.setEnabled(true); + } // end of if + } // end of jBSend_ActionPerformed + + // Ende Methoden + + public static void main(String[] args) { + new ChatClient("ChatClient"); + } // end of main + +} // end of class ChatClient diff --git a/Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.jar b/Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.jar new file mode 100644 index 0000000000000000000000000000000000000000..a50705bb5f3d03fbf4880ed22b2f51a326cfc436 GIT binary patch literal 53401 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

(rB({2Qo^1tmx>3a@-YYO#Y_@xm3%d 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%0D(2}eO+;mN~V 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 O{#;*dOwjJv|NcL+ZnCNX literal 0 HcmV?d00001 diff --git a/Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.java b/Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.java new file mode 100644 index 0000000..f3efbe6 --- /dev/null +++ b/Software/run_n_imp8_kommunikationsprotokoll/ChatServerGUI.java @@ -0,0 +1,252 @@ +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; +import java.util.ArrayList; +import java.net.InetAddress; + +/** + * + * Chat-Server-Programm: Die Nachrichten werden einfach an alle Teilnehmer weitergegeben + * + * + * @version 1.2 vom 08.11.2019 + * 1.2: IP-Adresse wird angezeigt + * @author Thomas Schaller + */ + +public class ChatServerGUI extends JFrame implements MyServerSocketListener { + // Anfang Attribute + private ArrayList clients; + private ArrayList names; + private static boolean ende; + private MyServer server; + private JLabel jLabel1 = new JLabel(); + private JButton jBStarten = new JButton(); + private JTextField jTFIP = new JTextField(); + private JList jList1 = new JList(); + private DefaultListModel jList1Model = new DefaultListModel(); + private JScrollPane jList1ScrollPane = new JScrollPane(jList1); + private JLabel jLabel2 = new JLabel(); + private int changeClientListAktiv = 0; + private JLabel jLabel3 = new JLabel(); + // Ende Attribute + + public ChatServerGUI() { + // Frame-Initialisierung + super(); + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + int frameWidth = 300; + int frameHeight = 311; + setSize(frameWidth, frameHeight); + Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); + int x = (d.width - getSize().width) / 2; + int y = (d.height - getSize().height) / 2; + setLocation(x, y); + setTitle("Chat-Server"); + setResizable(false); + Container cp = getContentPane(); + cp.setLayout(null); + // Anfang Komponenten + + jLabel1.setBounds(8, 16, 110, 20); + jLabel1.setText("Server-Adresse"); + cp.add(jLabel1); + jTFIP.setBounds(110, 16, 165, 20); + try { + jTFIP.setText(""+InetAddress.getLocalHost()); + } + catch (Exception e) { + + } + jTFIP.setEditable(false); + cp.add(jTFIP); + jBStarten.setBounds(96, 208, 75, 25); + jBStarten.setText("Starten"); + jBStarten.setMargin(new Insets(2, 2, 2, 2)); + jBStarten.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + jBStarten_ActionPerformed(evt); + } + }); + cp.add(jBStarten); + + jList1.setModel(jList1Model); + jList1ScrollPane.setBounds(8, 62, 270, 137); + cp.add(jList1ScrollPane); + jLabel2.setBounds(8, 38, 110, 20); + jLabel2.setText("Chatteilnehmer"); + cp.add(jLabel2); + addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent evt) { + ChatServerGUI_WindowClosing(evt); + } + }); + jLabel3.setBounds(24, 248, 229, 20); + jLabel3.setText("(cc) 2019, Thomas Schaller, Version 1.2"); + jLabel3.setForeground(Color.GRAY); + cp.add(jLabel3); + // Ende Komponenten + + setVisible(true); + + clients = new ArrayList(); + names = new ArrayList(); + server = null; + + } // end of public ChatServerGUI + + + + // Anfang Methoden + + public void neuerClient(MySocket client) { + for (String n : names) { + if (!n.equals("ManInTheMiddle")) { + client.sendeNachricht("user:"+n); + } // end of if + } // end of for + this.clients.add(client); + // System.out.println("Habe Kontakt mit "+client.getSocket().getInetAddress()+" Port "+client.getSocket().getPort()); + this.names.add("?"); + // changeClientList(); + } + + public void changeClientList() { + changeClientListAktiv++; + if (changeClientListAktiv == 1) { + do{ + changeClientListAktiv--; + DefaultListModel newListModel = new DefaultListModel(); + System.out.println("lm: "+jList1Model.size()); + System.out.println("Clients: "+clients.size()); + for (int i = 0; i < clients.size() ; i++ ) { + MySocket s = clients.get(i); + String n = names.get(i); + newListModel.addElement(n+"("+s.getSocket().getInetAddress()+":"+s.getSocket().getPort()+")"); + System.out.println(n+"("+s.getSocket().getInetAddress()+":"+s.getSocket().getPort()+")"); + System.out.println("lm: "+jList1Model.size()); + } // end of for + jList1.setModel(newListModel); + jList1.validate(); + } + while (changeClientListAktiv > 0 ); + } // end of if + } + + public void nachrichtEmpfangen(MySocket client) { + String s = client.holeNachricht(); + System.out.println("Habe Nachricht empfangen:"+s); + String[] ss = s.split(":"); + int i = clients.indexOf(client); + + if (ss[0].equals("exit")) { + s = s+names.get(i); + clients.remove(i); + names.remove(i); + client.trenneVerbindung(); + for (int j=0; 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