Chat-Nachrichtenübermittlung ?

G

GX100

Gast
Hallo,

Nach einer Suche im Web, und nachlesen in der Lektüre und Code, bin ich nun bereit hier eine Frage zu stellen.

Im unteren Code, wird eine graphisches Instrumenten-tool erzeugt. Man kann eine Melodie kreieren, durch aktivieren/deaktivieren der Kästchen, und per Buttons auf der rechten Seite, abspielen, verschnellern/verlangsamen und senden.
Also beim senden, passiert nichts, es gibt ein Eingabefenster und Ausgabefenster, es können zwei Objekte(String/Array) gesendet/empfangen werden, über einen Server. ?

Chatserver
Java:
import java.io.*;
import java.net.*;
import java.util.*;

public class MusikServer {
 ArrayList<ObjectOutputStream> clientOutputStreams;
 public static void main(String[] args) {
  new MusikServer().los();
 }

 public class ClientHandler implements Runnable {
  ObjectInputStream in;
  Socket clientSocket;

  public ClientHandler(Socket socket) {
   try {
    clientSocket = socket;
    in = new ObjectInputStream(clientSocket.getInputStream());
   } catch(Exception ex) {ex.printStackTrace();}
  }

  public void run() {
   Object o2 = null;
   Object o1 = null;
   try {
    while ((o1 = in.readObject()) != null) {
     o2 = in.readObject();
     System.out.println("zwei Objekte gelesen");
     esAllenMitteilen(o1, o2);
    }
   } catch(Exception ex) {ex.printStackTrace();} 
  }
 }

 public void los() {
  clientOutputStreams = new ArrayList<ObjectOutputStream>();
  try {
   ServerSocket serverSock = new ServerSocket(4242);
   
   while(true) {
    Socket clientSocket = serverSock.accept();
    ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
    clientOutputStreams.add(out);

    Thread t = new Thread(new ClientHandler(clientSocket));
    t.start();
    System.out.println("Verbindung hergestellt");
   }
  } catch(Exception ex) {ex.printStackTrace();}
 }

 public void esAllenMitteilen(Object eins, Object zwei) {
  Iterator it = clientOutputStreams.iterator();
  while(it.hasNext()) {
   try {
    ObjectOutputStream out = (ObjectOutputStream) it.next();
    out.writeObject(eins);
    out.writeObject(zwei);
   } catch(Exception ex) {ex.printStackTrace();}
  }
 }
}

Und hier Ausschnitte vom Client. Falls Ihr noch mehr Code braucht, bitte melden.
Socket erstellen.
Java:
public void inBetriebNehmen(String name) {
  benutzerName = name;

  try {
   Socket sock = new Socket("127.0.0.1", 4242);
   out = new ObjectOutputStream(sock.getOutputStream());
   in = new ObjectInputStream(sock.getInputStream());
   Thread remote = new Thread(new RemoteReader());
   remote.start();
  } catch(Exception ex) {System.out.println("Keine Verbindung möglich - Sie müssen allein spielen.");}
  midiEinrichten();
  guiErstellen();
 }

Senden/Empfangen Code.
Java:
public class MeinSendenListener implements ActionListener {
  public void actionPerformed(ActionEvent a) {
   boolean[] checkboxZustand = new boolean[256];
   for (int i = 0; i < 256; i++) {
    JCheckBox check = (JCheckBox) checkboxListe.get(i);
    if (check.isSelected()) {
     checkboxZustand[i] = true;
    }
   }

   try {
    out.writeObject(benutzerName + nummerierung+++ ": " + benutzerNachricht.getText());
    out.writeObject(checkboxZustand);
   } catch(Exception ex) {System.out.println("Tut mir Leid, Senden an den Server nicht möglich");}
   benutzerNachricht.setText("");
  }
 }

 public class MeinListSelectionListener implements ListSelectionListener {
  public void valueChanged(ListSelectionEvent le) {
   if (!le.getValueIsAdjusting()) {
    String wahl = (String) eingangsListe.getSelectedValue();
    if (wahl != null) {
     boolean[] wahlZustand = (boolean[]) andereSeqsMap.get(wahl);
     sequenceWechseln(wahlZustand);
     sequencer.stop();
     trackErstellenUndStarten();
    }
   }
  }
 }

 public class RemoteReader implements Runnable {
  boolean[] checkboxZustand = null;
  String anzuzeigenderName = null;
  Object obj = null;
  public void run() {
   try {
    while((obj=in.readObject()) != null) {
     System.out.println("Object vom Server erhalten");
     System.out.println(obj.getClass());
     String anzuzeigenderName = (String) obj;
     checkboxZustand = (boolean[]) in.readObject();
     andereSeqsMap.put(anzuzeigenderName, checkboxZustand);
     listenVector.add(anzuzeigenderName);
     eingangsListe.setListData(listenVector);
    }
   } catch(Exception ex) {ex.printStackTrace();}
  }
 }

Vielen Dank
G.
 
G

GX100

Gast
Hallo,

Vielen Dank für die Antwort und den Link.

Es war alles ok, nur ein Blöder Fehler im GUI-Code, mit Copy&Paste(!). Beim senden Button, stand noch ein alter Wert drin. [c](langsam)senden.addActionListener(new MeinSendenListener());[/c]
Wenn man den Code überfliegt, müsste man wie ein Interpreter arbeiten.

Alles i.o.

Schönes Wochenende
G.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
M Chat Programm in Java Java Basics - Anfänger-Themen 1
A Schimpfwortfilter im Chat-Programm Java Basics - Anfänger-Themen 2
T Chat ingame Java Basics - Anfänger-Themen 3
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
O euer chat hier Java Basics - Anfänger-Themen 1
O Ein einfacher Chatbot (simuliert chat) Java Basics - Anfänger-Themen 7
R Problem mit Java-Chat Java Basics - Anfänger-Themen 2
L Chat server Java Basics - Anfänger-Themen 4
L Kleiner erster p2p-Chat Problem Java Basics - Anfänger-Themen 2
D Wie den HTML-Teil des Chat Tutorials aus dem FAQ-Bereich starten? Java Basics - Anfänger-Themen 5
1 Chat im Browser Java Basics - Anfänger-Themen 16
S Frage Chat programm bauen Java Basics - Anfänger-Themen 5
K Fertiger Chat Java Basics - Anfänger-Themen 4
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
A java chat vor DDOs schützen Java Basics - Anfänger-Themen 18
L Eine Art Chat Java Basics - Anfänger-Themen 28
M NumberFormatException Chat WordPress Java Basics - Anfänger-Themen 13
xDarkSunx Java Chat Hilfe Java Basics - Anfänger-Themen 9
Y chat programm im internet realisieren Java Basics - Anfänger-Themen 5
? Chat-Source Java Basics - Anfänger-Themen 17
U2nt Mein Chat Java Basics - Anfänger-Themen 10
E Chat Fehler Applet Java Basics - Anfänger-Themen 8
C Java Chat Tutorials Java Basics - Anfänger-Themen 1
K Bestehenden Chat modifizieren (noch ein Anfänger!) Java Basics - Anfänger-Themen 7
S Chat-Server Java Basics - Anfänger-Themen 6
M irc-chat logging Java Basics - Anfänger-Themen 14
B ICR Chat - Serveranbindung Java Basics - Anfänger-Themen 2
A Im Chat eigenen Beitrag in Farbe zeigen Java Basics - Anfänger-Themen 8
K Client-Liste im Chat Java Basics - Anfänger-Themen 2
Séby777 Chat für Schulklasse Java Basics - Anfänger-Themen 2
I Liste in Java (Chat-Frage) Java Basics - Anfänger-Themen 3
A Möchte Java - Chat in meine Homepage einbinden. Java Basics - Anfänger-Themen 4
J Java-Chat geht nicht | Brauche dringent hilfe! Java Basics - Anfänger-Themen 3
S Java-Chat und Smilies Java Basics - Anfänger-Themen 8
A Java Chat Bauen !?!? Java Basics - Anfänger-Themen 10
S Chat entwickeln. Java Basics - Anfänger-Themen 11
lomtas Chat in Java Java Basics - Anfänger-Themen 3
C Erstes kleines Problem - string in chat ? Java Basics - Anfänger-Themen 9
D Smilies im chat Java Basics - Anfänger-Themen 6
J Problem mit java-basiertem Chat Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben