0 Daumen
183 Aufrufe

Frage: Wie Funktioniert das?

ich habe seit längerem jetzt versucht diesen Chat zu Programmieren. Ich bin noch sozusagen Anfängerin, verstehe aber normalerweise solche Sachen schnell. Aufjedenfall habe ich es Programmiert und mit puTTY ausprobiert. Geklappt hat es nicht. Es sind Fehler aufjedenfall vorhanden. Um erhlich zu sein hatte ich generell Probleme es zu Programmieren Kann mir bitte jemand helfen :)

Ich danke euch schonmal im Voraus:

ps: Das Protokoll ist Unten


Code:


import javax.swing.*;
/**
*
* Klasse f�r einen Chat-Server, abgeleitet von der Klasse Server.
*
* @version 17.12.2012
* @author Daniel Garmann
*/

public class ChatServer extends Server {

  // Anfang Variablen
  private JTextArea protokoll;
  private TeilnehmerListe teilnehmerliste;
  // Ende Variablen

  public ChatServer(int pPortNr, JTextArea pProtokoll) {
      super(pPortNr);
      protokoll = pProtokoll;
      teilnehmerliste = new TeilnehmerListe();
  }

  // Anfang Methoden
  public void processMessage(String pClientIP, int pClientPort, String pMessage) {
      // Herausfinden, welcher Nickname die Nachricht gesendet hat:
      String name = teilnehmerliste.gibName(pClientIP, pClientPort);

      // Auf dem Protokoll den gesendeten Befehl ausgeben:
      protokoll.append(name+": "+pMessage+"\n");
      protokoll.select(protokoll.getText().length(),protokoll.getText().length());

      // Und nun den gesendeten Befehl auswerten:
      if (pMessage.startsWith("NAME")) {
          // Nicknamen aus der Nachricht herausholen:
          String nick = pMessage.substring(5);
          // Wenn der Nickname noch nicht vorhanden ist, so wird er in die Teilnehmerliste eingef�gt:
          if (teilnehmerliste.hinzufuegen(pClientIP, pClientPort, nick) == true) {
              send(pClientIP, pClientPort, "+OK Du bist angenommen");
              sendToAll("+MSG Neuer Client: "+nick);
          } else {

              send(pClientIP, pClientPort, "Name schon vorhanden");

          }
      } else if (pMessage.startsWith("ALL")) {

            sendToAll("Return:"+ pMessage);

      } else if (pMessage.startsWith("ONE")) {
          // Herausfinden, von wem die Nachricht gefl�stert wurde:
          String nick = teilnehmerliste.gibName(pClientIP, pClientPort);
          // Die eigentliche Nachricht herausholen:
          pMessage = pMessage.substring(4);
          // diese besteht aus dem Empf�nger-Nicknamen und der Fl�sternachricht:
          String[] msg = pMessage.split(",");
          String toNick = msg[0];
          String toMsg = msg[1];
          // IP und Port des Fl�sterempf�ngers herausfinden:
          int port = teilnehmerliste.gibPort(toNick);
          String ip = teilnehmerliste.gibIP(toNick);
          // und wenn es diesen Empf�nger gibt, dann wird die Nachricht gesendet
          if (port != -1) {
              send(ip, port, "+MSG "+nick+" fl�stert: "+msg[1]);
              send(pClientIP, pClientPort, "+MSG "+nick+" fl�stert: "+msg[1]);
          }
      } else if (pMessage.startsWith("NICK")) {

          send(ip, port, "+MSG "+nick+" fl�stert: "+msg[1]);
          send(pClientIP, pClientPort, "+MSG "+nick+" fl�stert: "+msg[n]);
      } else if (pMessage.startsWith("QUIT")) {

          if(pMessage.equals("quit")){
              close();
          }

      }
  }

  public void processNewConnection(String pClientIP, int pClientPort) {

      send(pClientIP, pClientPort, "Du bist angenommen");

  }

  public void processClosingConnection(String pClientIP, int pClientPort) {

      send(pClientIP, pClientPort, "Verbindung abgebrochen");

  }

  // Ende Methoden
}


blob.png

Text erkannt:

Anmeldephase:
\begin{tabular}{|l|l|l|}
\hline \multicolumn{1}{|c|} { Client an Server } & \multicolumn{1}{c|} { Server an Client } & \multicolumn{1}{c|} { Server an alle } \\
\hline <meldet sich an \( > \) & +NAME & \\
\hline NAME <name & OK Du bist angenommen -FAIL Name schon vorhanden & +MSG Neuer Client: <name> \\
& & \\
\hline
\end{tabular}
Chatphase:
Abmeldephase:
\begin{tabular}{|l|c|c|}
\hline \multicolumn{1}{|c|} { Client an Server } & Server an Client & Server an alle \\
\hline QUIT & \( < \) Client wird abgemeldet \( > \) & \\
\hline\( < \) meldet sich ab \( > \) & & MSG <name \( > \) abgemeldet \\
\hline
\end{tabular}


Text erkannt:

/ Edit Docantr
\( \Theta \)
\( =6 \)
ARBEITSBLATT ZUM CHAT
Wir wollen einen kleinen Chat programmieren. Der Server und die Clients benōtigen eine Kommunikationsregel, wofur uns wir uns folgendes Protokoll u uberlegt haben:
egt mat
\( \theta \)
9
\begin{tabular}{|c|}
\hline Server an Client \\
\hline <Client wird abgemeldet
\end{tabular} \begin{tabular}{l}
Abmeldephase: \\
\hline Client an Server \\
\hline QUTT \\
\hline <meldet sich ab
\end{tabular} \begin{tabular}{|c|}
\hline Server an alle \\
\hline +MSG <name abgemeldet \\
\hline
\end{tabular}

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community